我是Selenium WebDriver的新手。因此,我开始构建基于关键字的自动化框架,并成功构建了该框架并正常工作。但是现在,我陷入了一种情况,我需要从下拉列表中选择值。我知道选择功能,可以在脚本编写方法中使用它。但是在框架中,我创建了一个文件UIOperation.java,其中创建了一些方法,例如CLICK
,SETTEXT
,WAIT
等。
那么,如何在同一文件中添加Select函数的代码?
我尝试了下面的代码,但是没有用。
case "SELECT":
//Perform select from drop-down
driver.findElement(this.getObject(p, objectName, objectType))).selectByVisibleText(value);
break;
下面我提到了几种方法,需要为Select方法创建相同的方法。
public class UIOperation {
WebDriver driver;
public UIOperation(WebDriver driver){
this.driver = driver;
}
public void perform(Properties p,String operation,String objectName,String objectType,String value) throws Exception{
System.out.println("");
switch (operation.toUpperCase()) {
case "CLICK":
//Perform click
driver.findElement(this.getObject(p,objectName,objectType)).click();
break;
case "SETTEXT":
//Set text on control
driver.findElement(this.getObject(p,objectName,objectType)).sendKeys(value);
break;
我正在使用TestNG执行此案。在excel文件中,我要添加关键字(即Click,Settext,Wait等),Object,ObjectType和Value。 (在ObjectProperties中,我定义了对象及其对象类型,如XPath,ID,名称等。)我试图通过使用Click关键字来选择下拉值,但无法为该对象选择选项。
答案 0 :(得分:0)
driver.findElement
返回一个没有方法selectByVisibleText
的{{3}}对象。
要使用selectByVisibleText
,则WebElement必须是<select>
标记,而您必须使用WebElement。
尝试一下:
case "SELECT":
//Perform select from drop-down
Select select = new Select(driver.findElement(this.getObject(p, objectName, objectType)));
select.selectByVisibleText(value);
break;