PhantomJs无法找到像使用Watir WebDriver的Chrome驱动程序的元素
问题描述:
我在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
请帮忙在此先感谢。
答
PhantomJS在Watir & Selenium中被弃用。 Chromedriver已经有一段时间明显更快了,如果你真的需要它是无头的话,现在已经实现了无头模式。只需将--disable-gpu
和--headless
添加到您的开关阵列即可。
+0
这不是我想的解决方案 – iamsankalp89
在这种情况下,您应该尽量避免使用文本作为定位器,而应该使用'browser.button'或browser.button(type:'submit')'。另外,你不应该在Watir中使用'implicit_wait'。 Watir在默认情况下会等待你,而隐含的等待将会阻碍你。 – titusfortner