我试图在Eclipse中使用Java学习Selenium。我正在尝试在网页中找到一个元素。
我尝试使用此行代码单击一个html <a>
元素:
driver.findElement(By.xpath("//a[@href='itemDetail.php?id=19']")).click();
下图显示了页面的html结构:
使用这段代码,我遇到了一个异常:
元素
<a href="itemDetail.php?id=19">
无法滚动到 查看
我使用了错误的语法来定位元素吗?
谢谢您的建议。
答案 0 :(得分:1)
由于尚未收到NoSuchElement异常,因此定位器看起来不错。尝试下面的javascript单击,它不需要将元素滚动到视图中。
JavaScript点击
WebElement element = driver.findElement(By.xpath("//a[@href='itemDetail.php?id=19']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();",element);
如果您想将元素滚动到视图中,然后在普通用户中单击以下代码。
滚动到视图和普通单击:
WebElement element = driver.findElement(By.xpath("//a[@href='itemDetail.php?id=19']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();",element);
element.click();
答案 1 :(得分:0)
要查找并在所需的click()
元素上<a>
,可以使用以下解决方案:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='container']//figcaption[text()='Play-Doh Rainbow Starter Pack']//preceding::img[1]"))).click();