Selenium代码不适用于在Safari中查找元素,在Firefox和Chrome中工作



有人可以帮助那些在Selenium WebDriver上工作过的人吗?

我一直在尝试在Mac机器上使用Selenium WebDriver自动化测试场景。当我将 Safari 定义为我的浏览器时,我正在获取错误"An element could not be located on the page using the given search parameters",即使该元素存在于 java 代码问题/错误中的页面上。

请注意:当我们选择 火狐 和 铬 作为浏览器。有一些类似的答案,但没有一个是在谈论Safari浏览器和Mac机器。

试着等待一下。使用流利的等待,如下所示:-

WebElement waitsss(WebDriver driver, By elementIdentifier){
Wait<WebDriver> wait =
new FluentWait<WebDriver>(driver).withTimeout(60, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
return wait.until(new Function<WebDriver, WebElement>()
{
public WebElement apply(WebDriver driver) {
return driver.findElement(elementIdentifier);
}
});
}

等待应该适合您。如果问题仍然存在,请使用JavascriptExecutor。它将直接通过JS运行。它应该有效。我举了一个使用JavascriptExecutor单击任何元素的示例

WebElement element = driver.findElement(By.id("gbqfd"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

希望它能帮助你:)

最新更新