Tag: watir

Watir脚本偶尔会返回Net :: ReadTimeout错误

我有一个Watir脚本,偶尔和不可预测地返回此错误: Net::ReadTimeout 我搜索了这个错误,发现这个问题已经问过。 我按照最佳答案,实施了这个: attempts = 0 url = “https:/www.google.com/” begin doc = Watir::Browser.start url rescue Net::ReadTimeout retry end 但我仍然得到相同的超时错误。 我的网络从未遇到任何连接问题。 我在Ubuntu和Windows 10机器上都出错了。 在此错误表现出来之前,我的代码平均经历了大约30次迭代。 我正在使用Chrome。 有什么建议?

Rails:Watir中的代理身份validation(Chrome驱动程序)

我试图在chrome webdriver中添加代理身份validation,它在下面的watir上运行: require ‘watir’ proxies = [‘–proxy-server=185.264.167.184:63109’, ‘–proxy-auth=username:password’] browser = Watir::Browser.new :chrome, :switches => proxies browser.goto(url) 当浏览器运行它仍然问我如下的用户名和密码: 问题是如何在watir上运行的chrome驱动程序中设置用户名和密码?

使用Watir保存屏幕截图

我在Ruby on Rails上使用Watir。 我需要使用Watir保存几页的屏幕截图。 我已设法获取要在浏览器中显示的页面,但无法保存屏幕截图。 这是我的代码: @browser = Watir::Safari.new folios_screenshot_path = Rails.root.join(‘screenshots/’) @page = Page.find(5) cur_url = root_url + ‘pages/’ + @page.id.to_s @browser.goto cur_url @browser.div(:id => “page”).wait_until_present @browser.driver.save_screenshot(pagess_screenshot_path + ‘/’ + @page.id.to_s + ‘.png’) @browser.close 在我加载的页面中,有一个id为’page’的div元素,我试图让Watir等到Watir浏览器中加载该元素。 但是在我的主浏览器中,我收到错误无法在10秒内加载页面 ,并且屏幕截图也没有保存。 什么是错的?

Heroku:使用Watir / Selenium时无法连接到chromedriver 127.0.0.1:9515

它在本地运行(不指定driver_path ),但不在Heroku上运行。 码: Selenium::WebDriver::Chrome.driver_path = ENV[‘GOOGLE_CHROME_SHIM’] browser = Watir::Browser.new :chrome 我在heroku rails控制台中确认了以下值 ENV[‘GOOGLE_CHROME_BIN’] => “/app/.apt/opt/google/chrome/chrome” ENV[‘GOOGLE_CHROME_SHIM’] => “/app/.apt/usr/bin/google-chrome-stable” 已安装的Buildpacks: https://github.com/heroku/heroku-buildpack-chromedriver https://github.com/heroku/heroku-buildpack-google-chrome 当前错误: Selenium :: WebDriver :: Error :: WebDriverError:无法连接到chromedriver 127.0.0.1:9515 在SO上搜索unable to connect to chromedriver 127.0.0.1:9515返回一堆结果,但没有提到heroku。 也: 我考虑过phantomjs。 其他人在这里工作, 使用带有Heroku Rails Unicorn堆栈的无头浏览器 但它被弃用了。 在本地运行时出现以下错误。 不推荐使用PhantomJS的Selenium支持。 请改用无头Chrome / Firefox或HTMLUnit。 也试过: 为了透明,我也尝试了以下内容。 更改browser = Watir::Browser.new :chrome browser […]

Timeout ::使用Watir的Rails应用程序出错

我正在使用Watir浏览页面并截取我的应用程序中某些页面的屏幕截图。 但是,从我的服务器获取页面需要一段时间,我得到Timeout :: Error。 为了解决这个问题,我在Watir浏览器实例中使用了一个等待来查看是否存在id为’content’的div,并让它等到它存在。 但是,它需要一些时间,页面将加载到Watir浏览器中。 但加载后,我在主浏览器窗口中收到Timeout :: Error 。 这是我的代码: @pages = Pages.all browser = Watir::Browser.new @pages.each do |page| page_url = app_root_url + ‘pages/’ + page.id.to_s browser.goto page_url Watir::Waiter::wait_until { browser.div(:id, ‘content’).exists? } file_save_path = pages_screenshot_path.to_s + page.id.to_s + ‘.png’ browser.driver.save_screenshot(file_save_path) end browser.close 每个页面都包含一个id为’content’的div。 不过,我猜它还没等。

Watir + Cucumber Connection拒绝了

伙计们,我在我的测试中使用watir + cucumber,对于我重用浏览器实例的每个function,我创建了@@browser = Watir::Browser.new的实例,然后通过我的测试重用它,我正在使用watir-webdriver ,我的测试运行良好,直到现在,我只是添加了另一个场景,我一直收到以下错误消息: Connection refused – connect(2) (Errno::ECONNREFUSED) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `initialize’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `open’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:53:in `timeout’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:93:in `timeout’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:553:in `do_start’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:542:in `start’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1035:in `request’

Ruby Watir Gem,定时输入表格

我正在使用Watir,Mechanize和Nokigirigem练习网页拼图。 我的Watir脚本遇到了问题。 我的计划是通过http://tripadvisor.com/获取航class价格清单。 当我运行脚本时,Chrome浏览器会按原样打开,脚本会继续填写表单的第一部分,原点和目标,然后停止。 这是我收到的错误消息: This code has slept for the duration of the default timeout waiting for an Element to be present. If the test is still passing, consider using Element#exists? instead of rescuing UnknownObjectException /home/jaffejoe/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/watir-6.2.0/lib/watir/elements/element.rb:515:in `rescue in wait_for_present’: element located, but timed out after 30 seconds, waiting for true condition on #”rt_leaveday”, :tag_name=>”input”}> […]

使用Selenium填写表单适用于Chrome但不适用于Firefox

我试图在Firefox中使用Selenium和ruby填写textarea,但由于某种原因,下面的代码不起作用。 当我将相同的脚本切换到Chrome驱动程序时,它确实有效。 browser.textarea(:placeholder => “Add a comment…”).set “#{randomly_chosen_comment}” 在Firefox上,我收到此错误: /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:623:in `raise_present’: element located, but timed out after 30 seconds, waiting for #”Add a comment…”, :tag_name=>”textarea”}> to be present (Watir::Exception::UnknownObjectException) from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:669:in `rescue in element_call’ from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:680:in `element_call’ from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/user_editable.rb:11:in `set’ from instabot.rb:68:in `block (2 levels) in ‘ from instabot.rb:36:in `each’ from instabot.rb:36:in `block in ‘ […]

制作’some_element’.present? 在watir等待不到5秒

我们如何制作some_element.present? 或some_element.visible? 等不到5秒钟。 因为我觉得some_element.present? 在超时之前,将单独等待默认值30秒。 谢谢

Watir如何获取具有不同类的行

我需要获取名为’odd_row’或’even_row’的类的所有行。 HTML: … … … … … … 我试过这个: @b.table(:class => ‘color_table’).tbody.trs(:class => (‘odd_row’ || ‘even_row’).size 但它返回1。 有人知道如何解决这个问题吗?