今晚我已经上网了,大约 3-4 个小时。我已经尝试了我遇到的每一个建议。我什至检查了我的 Selenium 驱动程序对象上的“功能”对象,以确保它确实设置在那里,事实上,它是:
#<Selenium::WebDriver::Remote::Capabilities:0x00000007475cf0
@capabilities=
{:browser_name=>"phantomjs",
:version=>"1.9.7",
:platform=>:"linux-unknown-64bit",
:javascript_enabled=>true,
:css_selectors_enabled=>true,
:takes_screenshot=>true,
:native_events=>true,
:rotatable=>false,
:firefox_profile=>nil,
:proxy=>#<Selenium::WebDriver::Proxy:0x00000007475908 @type=:direct>,
"driverName"=>"ghostdriver",
"driverVersion"=>"1.1.0",
"handlesAlerts"=>false,
"databaseEnabled"=>false,
"locationContextEnabled"=>false,
"applicationCacheEnabled"=>false,
"browserConnectionEnabled"=>false,
"webStorageEnabled"=>false,
"acceptSslCerts"=>false,
"proxy"=>{"proxyType"=>"direct"},
"phantomjs.page.settings.userAgent"=>
"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:27.0) Gecko/20100101 Firefox/27.0"}>
除了“phantomjs.page.settings.userAgent”之外,我还尝试了“userAgent”等。过去 3-4 小时内我在网上找到的所有东西,我都试过了。显然,在 2013 年初,这是一个相当普遍的问题,而我所说的解决方案显然是常见的解决方案。这些都不起作用,事实上,我从这些信息中肯定知道这一点(注意 User-Agent 是“Ruby”):
UNCAUGHT EXCEPTION: {"errorMessage"=>"Element is not currently visible and may not be manipulated",
"request"=>
{"headers"=>
{"Accept"=>"application/json",
"Accept-Encoding"=>"gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
"Connection"=>"close",
"Content-Length"=>"2",
"Content-Type"=>"application/x-www-form-urlencoded",
"Host"=>"localhost:9876",
"User-Agent"=>"Ruby"},
"httpVersion"=>"1.1",
"method"=>"POST",
"post"=>"{}",
"postRaw"=>"{}",
"url"=>"/click",
"urlParsed"=>
{"anchor"=>"",
"query"=>"",
"file"=>"click",
"directory"=>"/",
"path"=>"/click",
"relative"=>"/click",
"port"=>"",
"host"=>"",
"password"=>"",
"user"=>"",
"userInfo"=>"",
"authority"=>"",
"protocol"=>"",
"source"=>"/click",
"queryKey"=>{},
"chunks"=>["click"]},
"urlOriginal"=>
"/session/a03cc440-4f5c-11e4-8854-ed9c22bf60af/element/%3Awdc%3A1412822036214/click"}}
不幸的是,如果您使用的是 Java ,还有更多关于此类 Selenium 问题以及许多其他问题的信息和讨论。在这一点上,我希望我能在各个方面都使用 Java 来完成这个项目,但现在我有 30,000 行代码,这些代码完全是我在过去 2 个月里自己编写的。至少现在失去这份工作不仅对我个人而言是毁灭性的,而且对我的工作也是灾难性的。
是什么赋予了?我真的必须深入挖掘并定制源代码以获得我想要的东西,还是这个功能现在真的实现了?同样,我看到了 2013 年初的所有答案,但它们对我不起作用,我不知道为什么,或者如何轻松解决它。我在最后期限,所以这开始非常紧张。
有人对我有什么想法吗?请记住,我使用的是 Ruby,而不是 Java。
Selenium-webdriver 是 2.43。PhantomJS 是 1.9.7。GhostDriver 是 1.1.0。
对我来说,这似乎令人难以置信,没有办法修改您的用户代理。
如果我能提供任何其他可能有帮助的信息,请告诉我。
如果您愿意分享一些想法或一些信息以让我指出正确的方向,我提前感谢您。