填写表格后,我使用watir和firefox一起抓取一个网页.这是我的代码的一小部分:
browser.button(:type => 'submit').click
sleep 10
browser.element(:id => 'footer').wait_until_present(timeout=30)
html = browser.html
Run Code Online (Sandbox Code Playgroud)
出现此消息:
Instead of passing arguments into #wait_until_present method, use Keywords
Run Code Online (Sandbox Code Playgroud)
那是什么意思?我怎么解决这个问题?感谢帮助.
我发现了很多在 watir firefox 浏览器中实现自定义配置文件设置的提示,但都不起作用。
隐私浏览设置:
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.privatebrowsing.dont_prompt_on_enter'] = true
profile['browser.privatebrowsing.autostart'] = true
browser = Watir::Browser.new :firefox, :profile => profile
Run Code Online (Sandbox Code Playgroud)
自动保存文件设置:
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2
profile['browser.download.dir'] = path
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/csv"
browser = Watir::Browser.new :firefox, :profile => profile
Run Code Online (Sandbox Code Playgroud)
错误信息:
/var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.1/lib/selenium/webdriver/remote/w3c_bridge.rb:80:in `initialize': unknown option: {:profile=>#<Selenium::WebDriver::Firefox::Profile:0x000000016da348 @model=nil, @native_events=false, @secure_ssl=false, @untrusted_issuer=true, @load_no_focus_lib=false, @additional_prefs={"browser.privatebrowsing.dont_prompt_on_enter"=>true, "browser.privatebrowsing.autostart"=>true}, @extensions={}>} (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
Firefox 上可以自定义设置吗?怎么了?
我只是使用 watir 脚本从服务器下载顺序状态信息。在大多数情况下,它工作正常,但有时我会收到 Net::ReadTimeout 错误。我不知道为什么?
\n\n代码:
\n\nrequire "rubygems"\nrequire "watir"\nWatir.default_timeout = 180 # seconds \xe2\x80\x93 default is 60\nprefs = { :download => { :prompt_for_download => false, :default_directory => path } }\nbrowser = Watir::Browser.new :chrome, :switches => %w[--no-sandbox], :prefs => prefs\nbrowser.goto \'https://www...\'\n...\nRun Code Online (Sandbox Code Playgroud)\n\n错误信息:
\n\n/usr/lib/ruby/2.3.0/net/protocol.rb:158:in `rbuf_fill\': Net::ReadTimeout (Net::ReadTimeout) \n from /usr/lib/ruby/2.3.0/net/protocol.rb:136:in `readuntil\' \n from /usr/lib/ruby/2.3.0/net/protocol.rb:146:in `readline\' \n from /usr/lib/ruby/2.3.0/net/http/response.rb:40:in `read_status_line\'\n from /usr/lib/ruby/2.3.0/net/http/response.rb:29:in `read_new\'\n from /usr/lib/ruby/2.3.0/net/http.rb:1437:in `block in transport_request\' \n from /usr/lib/ruby/2.3.0/net/http.rb:1434:in `catch\'\n from /usr/lib/ruby/2.3.0/net/http.rb:1434:in `transport_request\'from /usr/lib/ruby/2.3.0/net/http.rb:1407:in `request\'\n from /usr/lib/ruby/2.3.0/net/http.rb:1400:in …Run Code Online (Sandbox Code Playgroud)