2017-09-25 153 views
1

我在Watir webdriver中使用PhantomJs时遇到了困难。PhantomJs无法找到像使用Watir WebDriver的Chrome驱动程序的元素

这里是我的代码选择元素时:

signInButton = driver.button text: 'Sign In' 
signInButton.wait_until_present 
signInButton.exists? 
signInButton.click 

它使用Chrome,但使用PhantomJs时不工作时工作正常。

这是我如何开始使用Chrome:

@@driver = Watir::Browser.new :chrome, :switches => %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate --disable-notifications --start-maximized] 
@@driver.driver.manage.timeouts.implicit_wait = 100 # seconds 

这是我如何开始使用PhantomJs:

args = %w{--ignore-ssl-errors=true} 
@@driver = Watir::Browser.new :phantomjs, :args => args 
@@driver.driver.manage.timeouts.implicit_wait = 100 # seconds 

请帮忙在此先感谢。

+0

在这种情况下,您应该尽量避免使用文本作为定位器,而应该使用'browser.button'或browser.button(type:'submit')'。另外,你不应该在Watir中使用'implicit_wait'。 Watir在默认情况下会等待你,而隐含的等待将会阻碍你。 – titusfortner

回答

0

PhantomJS在Watir & Selenium中被弃用。 Chromedriver已经有一段时间明显更快了,如果你真的需要它是无头的话,现在已经实现了无头模式。只需将--disable-gpu--headless添加到您的开关阵列即可。

+0

这不是我想的解决方案 – iamsankalp89

相关问题