Tag: watir webdriver

使用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秒内加载页面 ,并且屏幕截图也没有保存。 什么是错的?

Watir Webdriver(0.9.1)不再打开Firefox实例

使用Watir Webdriver v0.9.1 for rails(以及Selenium Webdriver 2.53.1)时,Firefox正在打开时 browser = Watir::Browser.new :firefox 被称为。 然而,现在它失败了 unable to bind to locking port 7054 within 45 seconds @ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:59:in `lock’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:40:in `locked’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `new’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `for’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver.rb:84:in `for’ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize’ test/integration/like_fanpage_task_test.rb:40:in `new’ test/integration/like_fanpage_task_test.rb:40:in `block (2 levels) in ‘ 它似乎随机地这样做,因为我没有从其工作forms更改代码,并且该行是第一行调用。 我有Firefox 37.0.2,之前有效。 我已经尝试重新启动计算机,杀死与ruby和Firefox相关的进程并重新启动它们,然后重新安装Firefox但无济于事。

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’

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

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

使用页面对象访问3层深度的嵌套元素

使用Page Object模型和gem我想访问一个嵌套3层深的元素。 我已经成功访问​​了2个元素深的嵌套元素,但对于3个相同的方法不起作用。 我的Page Object中定义的3个元素: div(:serv_info, :class => “service-info”) div(:validate_method, :class => “validate-method”) div(:scar_input_group, :class => “input-group”) 所以我试图链接这3个元素来访问div class input-container input-left-half round如下所示: div(:scar_first_name_error){validate_method_element.serv_info_element.scar_input_group_element.div_element(:class => “input-container input-left-half round”)} 但是我得到了一个错误,即serv_info_element是一个未定义的方法,这是有道理的,但有可能链接我上面提到的3个预定义元素来访问input-container input-left-half round ? 我读了这个: https : //github.com/cheezy/page-object/wiki/Nested-Elements但是如果我能帮忙的话,我不想重复任何代码。

真正的无头网络浏览器(非无头的abilites)?

我的任务是挑战无头(大部分时间),但能够在机器的默认浏览器中启动无头浏览器的当前状态。 无头,我的意思是没有打开浏览器窗口。 所以我和Waitr-webdriver一起运行PhantomJS。 在无头状态下,我正在完成一个多页的表格。 在表单的最后,我需要能够在我的本机浏览器中使用当前状态启动该页面/会话 。 如何实现这一目标? 想象一下这种情况: #1 open_page (Headless) @browser = Watir::Browser.new :phantomjs @browser.goto “www.somewebsite.com” #2 fill in form (Headless) field = @browser.text_field(:id => ‘field’) field.set ‘somevalue’ if field.exists? #3 click to next page (Headless) button = @browser.button(:id => ‘submitButton’).click #4 fill in form (Headless) field = @browser.text_field(:id => ‘field’) field.set ‘somevalue’ if […]

如何用Watir Webdriver确定元素的坐标?

我有个问题。 在解析页面时,会出现一个弹出窗口并阻止访问html。 我试图点击弹出窗口,但它重新指向我一个新的页面,我不知道如何到达弹出窗口的右上方区域来关闭它。 我的问题是如何确定该元素的坐标? Stackoverflow中提出的相关问题都没有帮助我找到解决方案,因此非常感谢您的帮助。

我可以在网页上复制文本并将其粘贴到文本文件中吗?

我有一个网页,动态显示我想要使用watir-webdriver或任何其他gem复制到文本文件中的文本。 可能吗?? 如果是的话,怎么样? 提前致谢..

有没有办法使用Watir-Webdriver在网页中自动测试闪存?

我正在尝试测试使用Flex构建的几个网页,并且需要通过Flash界面自动点击几个video。 我正在使用Ruby和Watir-Webdriver,但我不确定如何使用它们与Flash进行交互。 有没有人想到这个? 我尝试过使用Sikuli,但发现它有点笨重但不是很快。 任何想法将不胜感激。