selenium-webdriver - Selenium 代码不适用于在 Safari 中定位元素,但适用于 Firefox 和 Chrome

标签 selenium-webdriver safaridriver

有人可以帮助从事 Selenium WebDriver 工作的人吗?

我一直在尝试在 Mac 计算机上使用 Selenium WebDriver 自动化测试场景。当我将 Safari 定义为浏览器时,我收到错误 “使用给定的搜索参数无法在页面上找到元素”,即使该元素存在于 Java 代码中的页面上 Issues/漏洞。

注意:当我们选择 Firefox 和 Chrome 作为浏览器时,可以找到相同的元素。有一些类似的答案,但没有一个是在谈论 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);

希望对你有帮助:)

关于selenium-webdriver - Selenium 代码不适用于在 Safari 中定位元素,但适用于 Firefox 和 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45479254/

相关文章:

selenium - 使用 SafariDriver 运行 Selenium 移动测试时设置 UserAgent

java - Selenium Webdriver 不打开 url,而是仅打开空白页面

C# Selenium 如何使用 Safari 技术预览

python - Python 中的 Selenium : "NoSuchElementException: Message: no such element: Unable to locate element"

java - 使用我的 Selenium 代码在我的网站的表格中搜索文本

javascript - Protractor - 设置 Safari 选项来设置窗口大小等,

iOS 13 safaridriver 无法创建 safari session

python - 如何通过Selenium python初始化JS变量?

c# - 在 C# 中使用 ChromeDriver 单击包含特定类名的每个按钮

python - 在 Selenium 中抓取多个 URL 并写入 JSON