簡體   English   中英

代碼適用於watir-classic,但不適用於watir-webdriver

[英]Code works in watir-classic but not in watir-webdriver

當我在Watir-webdriver編寫打擊代碼時:

$browser.checkbox(:index,0).click

它給出以下錯誤:

元素不可見(會話信息:chrome = 48.0.2564.97)(驅動程序信息:chromedriver = 2.9.248315,platform = Windows NT 6.1 SP1 x86_64)

然后我編寫了這段代碼$browser.input(:index,0).click然后報告此錯誤:

未知錯誤:元素在點(952,17)處不可單擊。 其他元素將獲得點擊:...(會話信息:chrome = 48.0.2564.97)(驅動程序信息:chromedriver = 2.9.248315,platform = Windows NT 6.1 SP1 x86_64)

但是該元素清晰可見,並且以上兩行代碼在watir-classic中也可以正常使用,我們甚至不需要滾動屏幕。

誰能建議我為什么會這樣? 為什么這個watir-webdriver不像watir-classic那樣舒適?

<td class="centred"> <label class="label-checkbox"> <input type="checkbox" data-ng-model="cover.IsSelected" class="ng-pristine ng-valid"> <div class="fake-checkbox"> <span class="glyphicon glyphicon-ok"></span> </div> </label> </td>

您需要做的第一件事是更新chromedriver ,因為2.9版已經2年了。 該二進制文件需要與最新版本的chrome保持同步。 僅此一項就很可能解決您的問題。

如果這是可見性的問題... Watir(以及Selenium和WebDriver)的目的是模仿用戶的行為。 如果該復選框對用戶不可見,則您不應在測試中單擊它。

如果該復選框起初是不可見的,但隨后變得可見,則可以執行以下操作: browser.checkbox.when_present.click (請注意, index: 0是默認行為,並非必需)

如果復選框中包含一些令人興奮的JavaScript東西,這些東西將其掩蓋起來以使其永遠不可見,並且單擊可見的東西會引發“元素不可點擊”錯誤,則您可能必須執行browser.checkbox.when_present.fire_event :click該方法不能模仿用戶在您的站點上實際執行的操作,因此應僅將其用作最后的選擇。

暫無
暫無

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

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