以下是连接代理与 watir webdriver 的工作代码:
b = Watir::Browser.new :chrome, :switches => %w[--proxy-server=xxx.xxx.xx.xxx:80]
现在,如果代理不起作用,我怎么能抓住它并尝试另一个呢?像try and catch 还是with case?
以下是连接代理与 watir webdriver 的工作代码:
b = Watir::Browser.new :chrome, :switches => %w[--proxy-server=xxx.xxx.xx.xxx:80]
现在,如果代理不起作用,我怎么能抓住它并尝试另一个呢?像try and catch 还是with case?
看起来您只能通过转到页面来确定代理是否有效。如果 Chrome 无法连接到代理,它会显示“无法连接到代理服务器”的消息。因此,您可以尝试:
1) 使用代理转到页面 2) 检查消息 3) 如果出现消息,请尝试另一个代理 4) 如果没有出现消息,则代理工作
例如,以下将尝试第一个代理,这将失败。然后它将去尝试下一个代理,等等。
proxy_servers = ['111.111.11.111:80', '222.222.22.222:80']
browser = nil
proxy_servers.each do |proxy|
browser = Watir::Browser.new :chrome, :switches => ["--proxy-server=#{proxy}"]
# Try going to a page
browser.goto 'http://www.google.ca'
#If Chrome says "Unable to connect to the proxy server", try another one
if browser.text.include?('Unable to connect to the proxy server')
browser.close
else
break
end
end
# Throw an exception if a valid proxy server cannot be found
raise 'No valid proxy servers found' unless browser.exists?