面试问题Selenium Web Driver中页面上的可见元素后无法执行操作

时间:2018-07-11 07:09:52

标签: java selenium selenium-webdriver

在一次采访中,询问页面是否成功加载页面元素存在于页面上,但可见但无法执行操作(如单击),如何在使用Java的Selenium WebDriver中处理此情况。 谁能建议不使用JavaScript Executor的情况。

1 个答案:

答案 0 :(得分:0)

如果元素存在且可见,但不可单击。您必须等到可点击为止

WebDriverWait wait = new WebDriverWait(driver); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("the-element-id")));
element.click();

如果由于该元素被另一个元素(如覆盖元素)覆盖而无法点击。您必须等到覆盖消失之后,否则您可能需要先单击覆盖。

WebDriverWait wait = new WebDriverWait(driver); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("the-overlay-id")));
element.click();
driver.findElement(By.id("the-element-id")).click();