由于以下异常,我的脚本失败了 .
org.openqa.selenium.WebDriverException:未知错误:元素在点(355,160)处不可点击
如果元素出现在后台,则加载页面时,selenium会尝试单击并失败 . 我用过webdriverwait . 在10次中,它最少失败3次 .
如何在不使用Thread.sleep()的情况下避免/处理此问题;
您应该等到使用 invisibilityOfElementLocated 的元素不可见,如下所示: -
invisibilityOfElementLocated
WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath('xpath of please wait loading...')));
在此之后你可以在目标上执行 click element
click
element
希望它能工作.. :)
使用显式等待
WebDriver driver = new FirefoxDriver(); driver.get("http://somedomain/url_that_delays_loading"); WebElement myElement = (new WebDriverWait(driver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("myElement"))); // or (new WebDriverWait(driver, 10)).until( // ExpectedConditions.visibilityOfElementLocated(By.id("myElement"))); myElement .click();
2 回答
您应该等到使用
invisibilityOfElementLocated
的元素不可见,如下所示: -在此之后你可以在目标上执行
click
element
希望它能工作.. :)
使用显式等待