Ich versuche, Tests in Ruby mit den neuesten Watir-Webdriver 0.9.1, Selenium-Webdriver 2.53.0 und Chrome-Erweiterung 2.21 zu automatisieren. Allerdings hat die Website, die ich testen, statische Kopfzeilen an der Spitze oder manchmal statische Fußzeilen an der Unterseite. Da Watir ein Element automatisch in die Ansicht scrollt, bevor es darauf klickt, werden die Elemente unter der statischen Kopfzeile oder der statischen Fußzeile verborgen. Ich möchte sucess_capabitlites (ElementScrollBehavior) nicht auf 1 oder 0 setzen, da die zu testenden Websites sowohl statische Header als auch statische Fußzeilen oder beides haben können.Watir-Webdriver wirft 'nicht klickbaren' Fehler, auch wenn Element sichtbar ist, vorhanden
Daher die Frage sind 1) Warum wirft Watir eine Ausnahme "Element nicht anklickbar", auch wenn das Element sichtbar und vorhanden ist? Siehe Ruby-Code (Ich habe eine zufällige Unternehmenswebsite für ein Beispiel ausgewählt) und die Ergebnisse unten.
2) Wie kann ich dies beheben, ohne auf ElementScrollBehaviour zurückzugreifen?
Ruby-Code:
require 'watir-webdriver'
browser = Watir::Browser.new :chrome
begin
# Step 1
browser.goto "shop.coles.com.au/online/mobile/national"
# Step 2 - click on 'Full Website' link at the bottom
link = browser.link(text: "Full website")
#check if link exists, present and visible?
puts link.exists?
puts link.present?
puts link.visible?
#click on link
link.click
rescue => e
puts e.inspect
ensure
sleep 5
end
puts browser.url
browser.close
Ergebnis:
$ Rubin link_not_clickable.rb
wahr wahr wahr
Selen :: WebDriver :: Fehler :: Unknown: unbekannt Fehler: Element kann nicht an Punkt geklickt werden (460, 1295). Andere Element erhalten würde den Klick: div class = "shoppingFooter" ... div
(Session info: chrom = 50.0.2661.75) (Fahrerinfo: chromedriver = 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4), Plattform = Mac OS X 10.10.5 x86_64)> http://shop.coles.com.au/online/mobile/national
danke!
Ich habe versucht, Ihren Code, es funktioniert auf meinem Rechner. Wie wäre es mit Firefox anstatt Chrome? – Finks
Der Fehler bedeutet im Grunde, dass etwas überlagert ist, auf das geklickt werden soll, um stattdessen den Klick zu erhalten. Wenn das Ding etwas enthält, auf das Sie klicken möchten, versuchen Sie es stattdessen. Andernfalls müssen Sie so scrollen, dass die andere Sache nicht mehr über dem, was Sie versuchen zu klicken ist. –
@Finks. Firefox funktioniert auch für mich, vielleicht, weil es standardmäßig nach oben scrollt. Chrome scrollt standardmäßig nach unten, daher werden Fußzeilen über dem Element eingeblendet, auf das ich klicken möchte. – GregF