selenium/webdriver/firefox/binary.rb:134:在“路径"中:无法修改冻结的字符串(FrozenError) [英] selenium/webdriver/firefox/binary.rb:134:in `path': can't modify frozen String (FrozenError)
问题描述
我试图在硒中运行一个简单的Google查找代码,然后在EC2实例(Amazon Linux)上运行它.我在启动Firefox时遇到错误,无法理解该错误的含义.
I tried to run a simple google look up code in selenium and ran it on EC2 instance(Amazon Linux). I am getting an error launching Firefox and cannot understand what the error means.
Ruby版本-ruby 2.6.3p62(2019-04-16修订版67580)[x86_64-linux] selenium-webdriver版本-3.142.3
Ruby version - ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] selenium-webdriver version - 3.142.3
require 'selenium-webdriver'
options = Selenium::WebDriver::Firefox::Options.new(args: ['-headless'])
driver = Selenium::WebDriver.for(:firefox, options: options)
driver.get "http://google.com"
puts "Page title is #{driver.title}"
driver.quit
运行ruby test.rb
Traceback (most recent call last):
8: from test.rb:4:in `<main>'
7: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver.rb:88:in `for'
6: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/driver.rb:54:in `for'
5: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/firefox/driver.rb:33:in `new'
4: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/firefox/driver.rb:33:in `new'
3: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/firefox/marionette/driver.rb:38:in `initialize'
2: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/driver.rb:299:in `service_url'
1: from /usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/service.rb:45:in `firefox'
/usr/local/rvm/gems/ruby-2.6.3/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/firefox/binary.rb:134:in `path': can't modify frozen String (FrozenError)
这里需要一些帮助.
推荐答案
此外,从selenium-webdriver 3.142.3
开始,您还可以使用以下方法检查当前的Firefox二进制路径:
Also, as of selenium-webdriver 3.142.3
, you can check the current Firefox binary path using this:
Selenium::WebDriver::Firefox::Binary.path
如果未找到二进制文件,则会抛出相同的FrozenError
,如果在某处找到Firefox二进制文件,则返回二进制路径.
This would throw this same FrozenError
if no binary is found, and return the binary path if a Firefox binary has been found somewhere.
还值得一提的是,在selenium-webdriver
存储库中已打开一个问题如果您有兴趣的话,可以使错误消息更具解释性.
Also worth mentioning that an issue has been opened in the selenium-webdriver
repo to make the error message more explanatory, if you're interested.
这篇关于selenium/webdriver/firefox/binary.rb:134:在“路径"中:无法修改冻结的字符串(FrozenError)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!