0 ruby selenium watir selenium-webdriver
使用 Ruby selenium-webdriver 3.142.6
\n\n我的测试有效,但在运行开始时它显示警告
\n\nWARN Selenium [DEPRECATION] :driver_path is deprecated. Use :service with an instance of Selenium::WebDriver::Service instead.\n
Run Code Online (Sandbox Code Playgroud)\n\n根据 Ruby 文档,Selenium::WebDriver::Service 是一个私有 API。
\n\n在网上搜索与该警告相关的文章,参考了 Capybara、RoR 和 chromedriver-help,但我\xe2\x80\x99m 都没有使用这些内容。我尝试过“gem install webdrivers”,但失败了。
\n\n关于采取的路径有什么建议:忽略弃用消息,或使用私有 Service 类(如果是的话如何使用它),或尝试用 webdrivers 替换 selenium-webdriver,或其他什么?
\n\n这是成功创建 Selenium 驱动程序的代码,但出现警告
\n\nrequire "selenium-webdriver"\nrequire "test/unit"\nrequire "byebug"\n\n...\n\nclass GoogleTest < Test::Unit::TestCase\n\n def setup\n\n case $browser_arg\n when \'chrome\'\n browser = :chrome\n driver_path = \'/selenium_browser_drivers/chromedriver\'\n when \'firefox\'\n browser = :firefox\n driver_path = \'/selenium_browser_drivers/geckodriver\'\n else\n raise ArgumentError.new("Unexpected browser argument \'#{$browser_arg}\'") \n exit \n end\n @se = Selenium::WebDriver.for browser, :driver_path => driver_path\n\n end\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n宝石文件
\n\nsource \'https://rubygems.org\'\n\ngem \'selenium-webdriver\', \'~> 3.142.0\'\ngem \'test-unit\', \'~> 3.3.0\'\ngem \'byebug\', \'~> 9.1.0\'\n
Run Code Online (Sandbox Code Playgroud)\n\nGemfile.lock
\n\nGEM\n remote: https://rubygems.org/\n specs:\n byebug (9.1.0)\n childprocess (3.0.0)\n power_assert (1.1.5)\n rubyzip (2.0.0)\n selenium-webdriver (3.142.6)\n childprocess (>= 0.5, < 4.0)\n rubyzip (>= 1.2.2)\n test-unit (3.3.4)\n power_assert\n\nPLATFORMS\n ruby\n\nDEPENDENCIES\n byebug (~> 9.1.0)\n selenium-webdriver (~> 3.142.0)\n test-unit (~> 3.3.0)\n\nBUNDLED WITH\n 2.0.2\n
Run Code Online (Sandbox Code Playgroud)\n\n命令 gem list 的输出
\n\nbackports (3.15.0)\nbigdecimal (default: 1.3.4)\nbuilder (3.2.3)\nbundler (2.0.2, 1.16.1, default: 1.16.0)\nbyebug (9.1.0)\nchildprocess (3.0.0, 0.8.0)\ncmath (default: 1.0.0)\ncsv (default: 1.0.0)\ncucumber (3.1.2)\ncucumber-core (3.2.1)\ncucumber-expressions (6.0.1)\ncucumber-tag_expressions (1.1.1)\ncucumber-wire (0.0.1)\ndate (default: 1.0.0)\ndbm (default: 1.0.0)\ndid_you_mean (1.2.0)\ndiff-lcs (1.3)\netc (default: 1.0.0)\nfcntl (default: 1.0.0)\nffi (1.9.18)\nfiddle (default: 1.0.0)\nfileutils (default: 1.0.2)\ngherkin (5.1.0)\nio-console (default: 0.4.6)\nipaddr (default: 1.2.0)\njson (default: 2.1.0)\nminitest (5.10.3)\nmulti_json (1.13.1)\nmulti_test (0.1.2)\nnet-telnet (0.1.1)\nopenssl (default: 2.1.0)\npower_assert (1.1.5, 1.1.1)\npsych (default: 3.0.2)\nrake (12.3.0)\nrdoc (default: 6.0.1)\nrspec (3.9.0, 3.7.0, 3.6.0)\nrspec-core (3.9.0, 3.7.1, 3.6.0)\nrspec-expectations (3.9.0, 3.7.0, 3.6.0)\nrspec-mocks (3.9.0, 3.7.0, 3.6.0)\nrspec-support (3.9.0, 3.7.1, 3.7.0, 3.6.0)\nrubyzip (2.0.0, 1.2.1)\nscanf (default: 1.0.0)\nsdbm (default: 1.0.0)\nselenium-webdriver (3.142.6, 3.8.0)\nstringio (default: 0.0.1)\nstrscan (default: 1.0.0)\ntest-unit (3.3.4, 3.2.7)\nwebrick (default: 1.4.2)\nxmlrpc (0.3.0)\nzlib (default: 1.0.0)\n
Run Code Online (Sandbox Code Playgroud)\n
即使在实例化驱动程序变量之前,您也可以通过显式分配 driver_path 变量来避免此错误。看下面的代码
require 'selenium-webdriver'
Selenium::WebDriver::Chrome::Service.driver_path = "C:/Ruby26/chromedriver.exe"
driver = Selenium::WebDriver.for :chrome
driver.manage.timeouts.implicit_wait = 10
driver.navigate.to("https://www.google.com/")
driver.find_element(name: 'q').send_keys 'raja'
Run Code Online (Sandbox Code Playgroud)
此代码不会发出该警告。Selenium::WebDriver::Chrome::Service.driver_path = "C:/Ruby26/chromedriver.exe"
因为我在创建驱动器之前分配了该值。
归档时间: |
|
查看次数: |
4457 次 |
最近记录: |