2

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

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

注意:当我们选择 Firefox 和 Chrome 作为浏览器时,可以找到相同的元素。有一些类似的答案,但没有一个是在谈论 Safari 浏览器和 Mac 机器。

4

1 回答 1

2

试着放一些等待。使用流利的等待如下:-

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);

希望它会帮助你:)

于 2017-08-03T09:05:20.883 回答