selenium 使用教程详解-java版本 (6)

注:如果已经切换进入了其中的一个 iframe 中,再想对 iframe 外的元素进行操作,需要切换回到默认的页面中,否则会找不到元素。

// 切换到默认内容页面 driver.switchTo().defaultContent(); 7.3.浏览器窗口的切换

​ 有时候后在操作浏览器,可能打开了一个新的窗口,这个时候如果要对新窗口的元素进行操作,需要切换到新窗口中去,怎么去切换呢?在 selenium 中有个叫句柄的概念。

​ 什么是句柄,简单理解就是浏览器窗口的一个标识,浏览器打开的每个窗口都有唯一的一个标识,也就是句柄,我们可以通过句柄来进行窗口之间的切换,从而来达到我们操作不同窗口的元素。

WebDriver 中提供了两个 API 来获取窗口的相关句柄:

// 获取当前窗口的句柄 String handle = driver.getWindowHandle(); // 获取所有窗口的句柄,返回一个集合 Set<String> handles = driver.getWindowHandles();

获取到句柄后,通过对应的方法进行切换:

// 切换到窗口 driver.switchTo.windwo(String handle);

多窗口之间的切换方法:

/** * 切换窗口的方法 * 通过传入一个标题来找到我们需要的窗口。 * @param title 窗口的标题 */ public void switchWindow(String title){ Set<String> handles = driver.getWindowHandles(); // 切换窗口的方式--循环遍历handles集合 for (String handle : handles) { //判断是哪一个页面的句柄??--根据什么来判断???title if(driver.getTitle().equals(title)){ break; }else{ //切换窗口--根据窗口标识来切换 driver.switchTo().window(handle); } } 7.4.select 下拉框处理

如果一个页面元素是一个下拉框(select),对应下拉框的操作,selenium有专门的类 Select 进行处理。其中包含了单选和多选下拉框的各种操作,如获得所有的选项、选择某一项、取消选中某一项、是否是多选下拉框等。

Select类常用的一些方法:

方法 说明
void ()   取消所有选择项,仅对下拉框的多选模式有效,若下拉不支持多选模式,则会抛出异常 UnsupportedOperationException(不支持的操作)  
void (int index)   取消指定index的选择,index从零开始,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)  
void (String value)   取消Select标签中,value为指定值的选择,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)  
void (String Text)   取消项的文字为指定值的项,例如指定值为Bar,项的html为 Bar,仅对多选模式有效,单选模式无效,但不会抛出异常  
ListgetAllSelectedOptions()   获得所有选中项,单选多选模式均有效,但没有一个被选中时,返回空列表,不会抛出异常  
WebElement getFirstSelectedOption()   获得第一个被选中的项,单选多选模式均有效,当多选模式下,没有一个被选中时,会抛出NoSuchElementException异常  
ListgetOptions()   获得下拉框的所有项,单选多选模式均有效,当下拉框没有任何项时,返回空列表,不会抛出异常  
boolean isMultiple()   判断下拉框是否多选模式  
void (int index)   选中指定index的项,单选多选均有效,当index超出范围时,抛出NoSuchElementException异常  
void (String value)   选中所有Select标签中,value为指定值的所有项,单选多选均有效,当没有适合的项时,抛出NoSuchElementException异常  
void (String text)   选中所有项的文字为指定值的项,与deselectByValue相反,但单选多选模式均有效,当没有适合的项时,抛出NoSuchElementException异常  

示例:2345网址导航首页的城市省份切换。

1.进入2345.com首页,点击头部【切换】进行城市切换,我们切换省份为北京。

2.HTML页面DOM结构。

selenium 使用教程详解-java版本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjgxg.html