硒:元素无法滚动到视图中

时间:2019-03-30 13:11:42

标签: java selenium xpath

我试图在Eclipse中使用Java学习Selenium。我正在尝试在网页中找到一个元素。

我尝试使用此行代码单击一个html <a>元素:

driver.findElement(By.xpath("//a[@href='itemDetail.php?id=19']")).click();

下图显示了页面的html结构:

enter image description here

使用这段代码,我遇到了一个异常:

  

元素<a href="itemDetail.php?id=19">无法滚动到   查看

我使用了错误的语法来定位元素吗?

谢谢您的建议。

2 个答案:

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