java,Webdriver,所以现在我有了这个,但是第三行中的转换给了我错误
public void getLinks(String linkName)抛出异常{
try {
List<WebElement> links = ((Webelement)driver).findElements(By.tagName("a"));
for (WebElement myElement : links){
String link = myElement.getText();
if (link.equals(linkName)){
myElement.click();
}
}
}catch (Exception e){
System.out.println("Error the link was not found "+e);
} }
如果我运行它,这就是我所看到的:在端口34733上启动ChromeDriver(v2.6.232923) 错误链接未找到java.lang.ClassCastException:java.lang.ThreadLocal无法强制转换为org.openqa.selenium.WebElement 通过:测试
我的第二个想法是它没有找到:“tagName(”a“));”对于链接。但是当我上网时,我看到葡萄牙的联系人涉及航空公司 所以链接是“a”标签,所以我不认为这是。 我通过这个:字符串linkName =“葡萄牙的联系人涵盖航空公司”;
答案 0 :(得分:0)
我认为这是一个错误的断言:
if (assertEquals(linkName, myElement)){
myElement.click();
}
..因为linkName是一个String,myElement是一个WebElement,而assertEquals()返回值不是boolean(只是void)。您可以使用String equals()进行检查。例如:
if (link.equals(linkName)){
myElement.click();
}