我正在尝试使用get(int)
方法为类型列表创建的硒脚本,如果未选择该类型,它将选择单选按钮。
我使用以下脚本:
package automationFramework;
import java.awt.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FirstTestCase {
public static void main(String[] args) throws InterruptedException {
// Create a new instance of the Firefox driver
System.setProperty("webdriver.gecko.driver", "/home/gradulescu/Documents/Eclipse project/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
// Storing the Application Url in the String variable
String url = "http://toolsqa.wpengine.com/automation-practice-form/";
driver.get(url);
//Launch the Online Store Website
List Rbtn = (List) driver.findElement(By.name("sex"));
boolean bool = false;
bool = Rbtn.get(0).isSelected();
if (bool==true)
{Rbtn.get(1).click();
}
else
{Rbtn.get(0).click();
}
}
}
get方法返回以下错误:
类型列表的方法get(int)未定义
我将Eclipse 3.8.1与JConsole 1.8.0_171-b11和Java VM版本一起使用:Java HotSpot(TM)64位服务器VM,25.171-b11
你能帮我吗?
答案 0 :(得分:0)
替换:
List Rbtn = (List) driver.findElement(By.name("sex"));
具有:
List<WebElement> rBtn = driver.findElements(By.name("sex")); // this will return a list of all found elements
这是一个可行的示例代码:
driver.get("http://toolsqa.wpengine.com/automation-practice-form/");
List<WebElement> rBtn = driver.findElements(By.name("sex")); // this will return a list of all found elements
if (rBtn.get(1).isSelected()) // I'm getting the second element because the first one is only label
{
rBtn.get(2).click(); //click 'Female'
}
else
{
rBtn.get(1).click(); //click 'Male'
}
PS:始终检入开发人员工具中要使用选择器定位的元素。要打开开发工具,请在浏览器中按F12
。更多信息here。
答案 1 :(得分:0)
正如WebDriver
的文档所述,findElements(By by)
方法返回java.util.List<WebElement>
({em} WebElement
类的对象列表),而不是java.awt.List
(awt中的 UI组件列表)。
您需要更改导入,并将代码更改为:
List<WebElement> rbtn = driver.findElement(By.name("sex"));
注意:在Java中,变量,参数,方法名称必须以小写字母开头
答案 2 :(得分:0)
boolean
在默认情况下为false,因此您不必显式初始化它。同样,if(bool)
也可以。第三,将findElements
存储在List中时需要使用它们。第四,使用try...catch
块是一个好习惯。
尝试-
package automationFramework;
import java.awt.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FirstTestCase {
public static void main(String[] args){
try {
System.setProperty("webdriver.gecko.driver", "/home/gradulescu/Documents/Eclipse project/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
// Storing the Application Url in the String variable
String url = "http://toolsqa.wpengine.com/automation-practice-form/";
driver.get(url);
// Launch the Online Store Website
List<WebElement> Rbtn = driver.findElements(By.name("sex"));
boolean bool;
bool = Rbtn.get(0).isSelected();
if (bool)
Rbtn.get(1).click();
else
Rbtn.get(0).click();
} catch (Exception e) {
e.printStackTrace();
}
}
}