今天讲一些下拉框另外几种方法
deselectByIndex()
deselectByValue("")
deselectByVisibleText("")
getAllSelectedOptions()
getFirstSelectedOption().getText()
注意:
上述几个方法只使用于一次性选择多种值的场景
我们上节的几个方法:
selectByIndex()
selectByValue("")
selectByVisibleText("")
适用于一次性选择一个值的情况
eg:
代码:
package
com.wushuai.test
import java
.util.List
import org
.openqa.selenium.By
import org
.openqa.selenium.WebDriver
import org
.openqa.selenium.WebElement
import org
.openqa.selenium.chrome.ChromeDriver
import org
.openqa.selenium.support.ui.Select
public class SelectTest {
public WebDriver driver
//初始化chrome浏览器驱动
public void initDriver()
{
System
.setProperty(
"webdriver.chrome.driver",
"D:\\java\\chromedriver-32\\chromedriver.exe")
//初始化chrome浏览器
driver=new ChromeDriver()
driver
.get(
"http://www.imooc.com/user/newlogin/from_url/")
//屏幕最大化
driver
.manage()
.window()
.maximize()
}
public void inputBox() {
//输入账号
driver
.findElement(By
.name(
"email"))
.sendKeys(
"123456@qq.com")
try {
//睡眠两秒
Thread
.sleep(
2000)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e
.printStackTrace()
}
//清除账号
driver
.findElement(By
.name(
"email"))
.clear()
String s=driver
.findElement(By
.name(
"email"))
.getAttribute(
"placeholder")
//打印信息
System
.out.println(s)
driver
.findElement(By
.name(
"email"))
.sendKeys(
"m13031155057@163.com")
driver
.findElement(By
.name(
"password"))
.sendKeys(
"123456")
driver
.findElement(By
.className(
"btn-red"))
.click()
try {
//睡眠两秒
Thread
.sleep(
2000)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e
.printStackTrace()
}
}
public void dowmsSelectBox() {
//进入慕课网个人信息页面
driver
.get(
"http://www.imooc.com/user/setprofile")
//找到并点击
"编辑"按钮
driver
.findElement(By
.className(
"pull-right"))
.click()
//休眠一秒钟
try {
Thread
.sleep(
1000)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e
.printStackTrace()
}
//先找到form表单的id
WebElement form=driver
.findElement(By
.id(
"profile"))
//通过form表单再找到下拉框Select的id
WebElement job=form
.findElement(By
.id(
"job"))
//创建selenium自带的类进行下拉框定位
Select downList=new Select(job)
//通过index为下拉框赋值
downList
.selectByIndex(
3)
//downList
.selectByValue(
"3")
//downList
.selectByVisibleText(
"页面重构设计")
//如果添加以下四行代码中的任意一行代码,那么会报错:You may only deselect all options of a multi-select
//报错原因:你可以选择多个选项-就是因为我们这里的下拉框只能一次性选中一个值,而不是多个值,而deselect只应用于多选中
//downList
.deselectAll()
// downList
.deselectByIndex(
3)
// downList
.deselectByValue(
"3")
// downList
.deselectByVisibleText(
"页面重构设计")
//List集合获取我们当前下拉框选中的值,要注意由于我们这里的下拉框每次只能选一个值,所以List集合中只有一个元素
List<WebElement> ls=downList
.getAllSelectedOptions()
//遍历
for(WebElement s:ls)
{
System
.out.println(s
.getText())
}
//得到我们第一个选中的文本值
System
.out.println(downList
.getFirstSelectedOption()
.getText())
//通过Value为下拉框赋值
//downList
.selectByValue(
"4")
//通过Text文本为下拉框赋值
//downList
.selectByVisibleText(
"JAVA开发工程师")
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个对象
SelectTest
st=new SelectTest()
//调用chrome浏览器驱动初始化方法
st.initDriver()
//调用登录方法
st.inputBox()
//调用下拉框操作方法
st.dowmsSelectBox()
}
}
总结:
deselectByIndex()
deselectByValue("")
deselectByVisibleText("")
getAllSelectedOptions()
getFirstSelectedOption().getText()
selectByIndex()
selectByValue("")
selectByVisibleText("")