2017-08-03 31 views
1

Selenium WebDriver能够帮助谁工作?Selenium代码不能用于在Safari中定位元素,在Firefox和Chrome中工作

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

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

+1

嘿肖恩!就目前而言,除非您还添加了一些代码(发布代码段!),否则您的问题很难调试。请点击** [编辑](https://stackoverflow.com/posts/45479254/edit)** 你的问题,并确保你有一个有效的** [最小,完整和可验证的例子](https:// stackoverflow .com/help/mcve)**, 否则,绝大多数答案都会是黑暗中的镜头。 – iamdanchiv

回答

0

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

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

希望它会帮助你:)

+0

嗨Shubham,我尝试了它,它工作。真棒! –

+0

我为你工作。请点击答案左侧的正确符号接受答案,就在下面的投票中。请投票了..它将真正帮助我和其他人谁将在未来提及这个问题..这是如何stackoverflow工作:) ...参考: - https://meta.stackexchange.com/questions/5234/如何接受答案的工作 –

+0

我是非常新的stackoverflow :)当我试图投票,我得到的消息:“感谢您的反馈!投票案例小于15声誉的人被记录,但不要更改公布显示的分数!“ - 因此,我很乐意与我分享任何建议。再次感谢你。 –

相关问题