簡體   English   中英

Ruby Watir Selenium WebDriver描述了警告

[英]Ruby Watir Selenium WebDriver depricated warning

我正在嘗試使Ruby Watir腳本在新服務器上運行。
我在舊服務器上有一個工作腳本:

#!/bin/ruby
require 'rubygems'
require 'watir'
require 'date'
require 'headless'
require 'fileutils'
require 'uri'
require 'logger'

headless = Headless.new(autopick: true, reuse: false, destroy_at_exit: true).start
options = Selenium::WebDriver::Chrome::Options.new
options.add_preference(:download, prefs)
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-translate')

b = Watir::Browser.new(:chrome, options: options)
b.goto 'someurl.com'
b.div(:id => 'IFRAME1').iframe.body.div(:id => 'DIVID1').div(class: ['Test1', 'Test2']).link(:id => 'DIVID2').click #getting warning here

我得到的警告如下:

WARN Selenium [DEPRECATION] Selenium :: WebDriver :: Error ::不推薦使用ElementNotVisibleError。 使用Selenium :: WebDriver :: Error :: ElementNotInteractableError(確保驅動程序支持W3C WebDriver規范)。

當前服務器版本:

無頭(2.3.1,2.2.0)

selenium-webdriver(3.4.4)

watir(6.6.3)

新服務器版本:

無頭(2.3.1)

selenium-webdriver(3.142.3,3.142.0)

watir(6.16.5)

我有一種感覺,問題是版本不匹配,但我無法確定它。

到目前為止,我無法找到任何解決方案。

TL / DR:

  1. 忽略他們,你沒有做錯任何事。
  2. 升級到Chrome v75 +
  3. 現在降級到Selenium 3.141.0

Selenium曾經使用JSON Wire Protocol實現,它詳細說明了驅動程序端點和端點預期的有效負載格式等。不幸的是,每個瀏覽器驅動程序實現都有自己有趣的邊緣情況和特性,這使得跨瀏覽器測試更具挑戰性。 Selenium開發人員和瀏覽器供應商齊聚一堂,就這些交互的w3c標准達成一致,這樣一切都可以以適用於所有瀏覽器的方式完成。 該標准於2018年作為w3c推薦發布 谷歌是默認情況下開啟w3c合規模式的最后一家瀏覽器廠商, 這將在Chrome v75 (今天發布)中實現。

Selenium 3.142是Selenium 4之前Selenium的最后一個版本.Selenium 4將完全取消對傳統協議的支持。 因此,Ruby Selenium團隊決定在代碼中拋出警告,以防止在Selenium 4中無效。因為默認情況下Chrome <75不符合w3c,默認情況下它不適用於Selenium 4,所以Selenium是發出警告。 請注意,由於驅動程序的響應,這是一個錯誤,因此您的代碼中沒有任何更改可以避免這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM