Tag: watir webdriver

Watir / Selenium – browser.goto在Chrome和Firefox上不断出现TimeOut错误

Watir webdriver遇到了一个非常烦人的问题.. 我调试了一下,发现我总是在一个简单的@ browser.goto行上得到TimeOut :: Error,即使我可以直观地看到页面已经完全加载了… 场景是这样的:打开浏览器,转到url,点击几个链接,然后突然一点,脚本停止继续浏览,等待大约30秒以上并抛出错误。 尝试了Chrome和FF:Chrome更糟糕,通常第二或第三个链接点击会触发; 对于FF,有时需要10多页浏览… 打赌存在一些环境或可比性问题: jd@deskbox:~$ uname -am Linux deskbox 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux jd@deskbox:~$ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] jd@deskbox:~$ rails -v Rails 3.2.1 jd@deskbox:~$ gem -v 1.8.15 jd@deskbox:~$ gem list|grep webdriver selenium-webdriver (2.12.0) watir-webdriver (0.5.3) 有人可以帮忙吗? […]

使用Ruby和Watir设置单选按钮

对,我遇到了一段代码问题。 我知道如何设置单选按钮我可以在大多数网站上进行。 但是当试图设置下面这段代码给出的值时,我无法使其工作。 我已尝试使用标签ect“等待”,“父设置”并搜索各种类型。 任何人都可以指出我正确的方向。 Internal External AES50 External Snake 我收到此错误: [remote server] file:///var/folders/81/j_87g_h12_x7bkl2w58zwqr00000gn/T/webdriver-profile20131024-1211-10eh16l/extensions/fxdriver@googlecode.com/components/command_processor.js:8210:in `fxdriver.preconditions.visible’: Element is not currently visible and so may not be interacted with 谢谢 Maximillion

使用Watir在HTML表格中迭代和填充数据的更好方法

我有一个表,最多可包含50行,有9列。 但是我用来填写表中数据的代码需要这么长时间。 有更快的方法吗? 这是我的代码 table = $browser.div(:id => “market”).table(:id => ‘tableTradeIndMarket’) i = 3 + rand(1..table.rows.length-4) table.rows[i].cells[4].select_list.select ‘Buy’ table.rows[i].cells[5].select_list.select ‘Market’ table.rows[i].cells[6].text_field.set ($share) table.rows[i+1].cells[4].select_list.select ‘Buy’ table.rows[i+1].cells[5].select_list.select ‘Limit’ table.rows[i+1].cells[6].text_field.set ($share) //To take out dollar sign which is found on the second column and put that value in to another column of the same row table.rows[i+1].cells[8].text_field.set( table.rows[i+1].cells[2].text[1..table.rows[i+1].cells[2].text.length] ) […]

Watir帮助:click-no-wait和execute_script无法按预期工作

使用ruby的Watir gem,我试图点击一个打开javascript弹出窗口的按钮,然后点击弹出窗口上的’ok’,我似乎无法做到这一点。 按钮位于框架中的框架中。 我已经广泛搜索并阅读有关javascript弹出窗口的Watir wiki条目但没有任何效果。 我认为这是因为execute_script和click_no_wait没有按预期工作。 例如,以下命令: @browser.execute_script(‘window.alert = function() {}’) @browser.execute_script(‘alert(“hello”)’) 创建一个javascript弹出窗口,上面写着“hello”而不是没有做任何事情的预期行为。 命令: @browser.button(:value, ‘Submit’).click 单击创建javascript弹出窗口的按钮。 然后该脚本挂起,直到我在弹出窗口中手动单击“确定”。 命令: @browser.button(:value, ‘Submit’).click_no_wait 不单击按钮(或者单击按钮并且不触发onclick事件)。 我也尝试过: Timeout::timeout(1) { @browser.button(:value, ‘Submit’).click } 和 Thread.new { @browser.button(:value, ‘Submit’).click } 但Timeout从不抛出exception,导致ruby挂起,直到我在弹出窗口中手动单击’ok’,并且当我在新线程中运行它时Watir不会单击。 有人能帮助或提供解决方案吗? 编辑:问题是在@ browser.button.click之后,脚本会挂起,直到弹出窗口关闭。 @ browser.alert.ok成功关闭弹出窗口,但单击按钮后脚本无法执行@ browser.alert.ok,因为它会一直挂起,直到弹出窗口关闭。 这个catch-22应该由click_no_wait解决,但是click_no_wait没有点击。 系统信息: Windows 7企业版64位 Internet Explorer版本9.0.12 的Watir-4.0.2-x86架构的mingw32 ruby 1.9.3p286(2012-10-12)[i386-mingw32]

Watir:通过启动chrome浏览器有时会出现Net :: ReadTimeout错误

我只是使用watir脚本从服务器下载顺序状态信息。 在大多数情况下它工作正常,但有时我得到一个Net :: ReadTimeout错误。 我不知道为什么? 码: require “rubygems” require “watir” Watir.default_timeout = 180 # seconds – default is 60 prefs = { :download => { :prompt_for_download => false, :default_directory => path } } browser = Watir::Browser.new :chrome, :switches => %w[–no-sandbox], :prefs => prefs browser.goto ‘https://www…’ … 错误信息: /usr/lib/ruby/2.3.0/net/protocol.rb:158:in `rbuf_fill’: Net::ReadTimeout (Net::ReadTimeout) from /usr/lib/ruby/2.3.0/net/protocol.rb:136:in `readuntil’ from […]

Watir webdriver Errno :: ECONNREFUSED:无法建立连接,因为目标计算机主动拒绝它。 – 连接(2)

更新: 我正在运行下面的代码来执行我的示例测试用例:(Windows 7,Watir 3.0.0,Watir-webdriver-0.6.1) require “watir-webdriver” require ‘test/unit’ class Teste1 $var = Watir::Browser.new :chrome def met1 $var.goto ‘google.com’ $var.text_field(:name, “q”).set ‘sample’ $var.button(:name =>’btnG’).click end end class Teste2 < Test::Unit::TestCase $test = Teste1.new def test_gomet1 $test.met1() end end 浏览器打开但脚本会引发以下错误: test_gomet1(Teste2): Errno::ECONNREFUSED: No connection could be made because the target machine actively refused it. – connect(2) C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:82:in […]

如何使用auth将代理添加到Watir上的ChromeDriver

我在Ruby上使用Watir,它使用Selenium作为其底层框架。 我正在使用ChromeDriver,为了设置代理,我真的这样做了: b = Watir::Browser.new :chrome, :switches => [“–proxy-server=11.1.1.11:3011”] 有时,代理附带用户,密码validation如下: 11.1.1.11:3011:3011:user:pass 但是当我尝试将该字符串放入–proxy-server我收到一个错误。 如何配置ChromeDriver以使用身份validation? 我尝试过其他SO答案中经常提出的格式,即: http://user:pass@11.1.1.11:3011 但那没用。 尝试没有http部分,也没有工作。

var = Watir :: Browser.start’url’之后无法在IRB中使用变量

1.9.3-p327 :001 > require ‘watir-webdriver’ => true 1.9.3-p327 :002 > b = Watir::Browser.new 然后firefox启动,我无能为力。 我的IRB不允许我输入新命令。 尝试了浏览器初始化的不同变体: b = Watir::Browser.new :opera b = Watir::Browser.new :firefox b = Watir::Browser.start ‘url’ 应该出现类似的东西: => #<OperaWatir::Browser:0x1496e57 @active_window=#<OperaWatir::Window:0x1eb1db2 @browser=#>,@driver=# Java::ComOperaCoreSystems::OperaDriver:0xeabd2f>> 但控制台中没有输出。 浏览器关闭60秒后,我得到以下输出: 1.9.3-p327 :002 > b = Watir::Browser.new Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) 试过chrome,firefox,浏览器打开,但是irb锁定。 操作系统:Ubuntu的 […]

使用watir-webdriver选择本地文件

我正在尝试使用watir-webdriver自动化从html页面中选择本地文件的过程 我有以下HTML test file to upload: 我试图点击id为test的输入,并使用watir-webdriver设置我希望上传的本地文件的路径。 我可以使用以下单击按钮以显示选择窗口 @browser.goto ‘http://www.test.com’ @browser.button(:id => ‘test’).click 然而,我正在尝试使用以下(从研究,这似乎是正确的方法。虽然不工作) @browser.file_field(:name => ‘file’).set(“C:\\path\\to\\test\\file\\validTest.xml”) 这会导致以下错误 Watir::Exception::UnknownObjectException: unable to locate element, using {:name=>”file”, :tag_name=>”input”, :type=>”file”} 试 @browser.button(:id => ‘test’).set(“C:\\path\\to\\test\\file\\validTest.xml”) 导致以下错误 NoMethodError: undefined method `set’ for # 有人可以帮忙吗? 我很难理解为什么file_field选项不起作用。

如何通过watir-webdriver获取IE的WIN32OLE句柄?

在Watir中,您可以使用下一个方法获取IE窗口的WIN32OLE句柄。 irb(main):059:0> browser.ie => # 我需要以某种方式获得由watir-webdriver创建的IE的相同返回。 有办法吗? 或者至少有人能指出我挖掘的方向。 我需要这些东西将HTTPwatch插件附加到我的浏览器实例。 以下是HTTPWatch代码的示例。 require ‘watir’ require ‘win32ole’ browser = Watir::Browser.new controller = WIN32OLE.new(‘HttpWatch.Controller’) plugin = controller.IE.Attach(browser.ie) UPD:感谢Justin Ko我有工作代码 require ‘win32ole’ require ‘watir-webdriver’ browser = Watir::Browser.new :ie title = browser.title browser.goto “google.com” length = WIN32OLE.new(‘Shell.Application’).Windows.count – 1 (0..length).each do |i| begin WIN32OLE.new(‘Shell.Application’).Windows(i).Document.Title $ie = WIN32OLE.new(‘Shell.Application’).Windows(i) rescue end end controller […]