我正面临一个严峻的问题,当我试图点击" C"附件中显示的链接。请注意红色标记的链接说明。
我在下面试过它并没有帮助。
WebElement ele=driver.findElement(By.xpath("//ul[@class='whp-rolodex']/li[contains(.,'C')]"));
ele.click();
然后我尝试了动作,但没有帮助
Actions action=new Actions(driver);
action.moveToElement(ele).click().perform();
action.click().perform(); //this also didnt help
然后尝试使用JavaScriptExecutor,这也没有帮助
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);
我在这些点击之前保持ele.isDisplayed(),并且它显示为真。
有人可以帮助我出错的地方,有没有更好的办法。
使用FF 40,selenium webdriver 2.47
答案 0 :(得分:1)
因为你的xpath错了。当您尝试在“li”标签中找到c时,C包含“a”标签。
使用像这样的xpath
//ul[@class='whp-rolodex']/li[3]/a[contains(.,'C')]
答案 1 :(得分:1)
虽然@ Shubham的观点完全有效,但我会将其简化为使用"链接文本"定位器:
driver.findElement(by.linkText("C"));
看起来非常简单易读。