java,Webdriver,我想获取网页中的所有链接,然后将它们与我拥有的字符串名称进行比较,如果找到它,则单击它

时间:2014-05-05 18:55:25

标签: java selenium-webdriver

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 =“葡萄牙的联系人涵盖航空公司”;

1 个答案:

答案 0 :(得分:0)

我认为这是一个错误的断言:

if (assertEquals(linkName, myElement)){
    myElement.click();
} 

..因为linkName是一个String,myElement是一个WebElement,而assertEquals()返回值不是boolean(只是void)。您可以使用String equals()进行检查。例如:

if (link.equals(linkName)){
    myElement.click();
}