如何在Selenium中单击对象或触发事件

时间:2015-09-07 16:12:40

标签: java selenium selenium-webdriver

我正面临一个严峻的问题,当我试图点击" C"附件中显示的链接。请注意红色标记的链接说明。enter image description here

我在下面试过它并没有帮助。

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

2 个答案:

答案 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"));

看起来非常简单易读。