ruby - selenium/webdriver/firefox/binary.rb:134:in `path': 无法修改冻结字符串 (FrozenError)
问题描述
我尝试在 selenium 中运行一个简单的谷歌查找代码并在 EC2 实例(Amazon Linux)上运行它。我在启动 Firefox 时遇到错误,无法理解错误的含义。
Ruby 版本 - ruby 2.6.3p62(2019-04-16 修订版 67580)[x86_64-linux] selenium-webdriver 版本 - 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 二进制路径:
Selenium::WebDriver::Firefox::Binary.path
FrozenError
如果没有找到二进制文件,这将抛出相同的结果,如果在某处找到了 Firefox 二进制文件,则返回二进制路径。
还值得一提的是,如果您有兴趣,在repo中已经打开了一个问题,以使错误消息更具解释性。selenium-webdriver
推荐阅读
- python - numpy中的逻辑错误
- python - Python/SQLAlchemy 格式化 DateRange 对象
- javascript - 将十六进制值转换为 unicode 字符
- hyperledger-fabric - Fabric CA 客户端用户注册授权失败
- xml - 如何跳过第一个 xml 元素组(标题行)
- javascript - 如何通过一个按钮添加一个或多个表单并通过javascript通过另一个按钮将其删除
- firebase - 更改 Firebase Firestore 服务器位置
- apache-storm - KafkaSpout 中的异常
- python - 转换为整数数字字符串熊猫数据框
- android - 关于网格项目点击的自动滚动粘性标题