Tak, mamy następujący kod w naszej stronie:Droga wokół elementu nie można przewijać do widzenia - Watir-webdriver z Ruby
<div class="toggle-wrapper">
<input id="HasRegistration_true" class="registration_required toggle" type="radio" value="True" name="HasRegistration" data-val-required="The HasRegistration field is required." data-val="true">
<label for="HasRegistration_true" class="">On</label>
<input id="HasRegistration_false" class="registration_required toggle" type="radio" value="False" name="HasRegistration" checked="checked">
<label class="checked" for="HasRegistration_false">Off</label>
</div>
Te są 2 przyciski radiowe. 'Sporadycznie'. "Off" jest wartością domyślną.
Korzystając z Watir-webdriver i Ruby, chcemy wybrać przycisk radiowy "Włącz". Robimy to tak:
browser.radio(:id => "HasRegistration_true").set
Ale w ten sposób, otrzymujemy następujący błąd:
`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)
Wiemy selen 2 Przewijanie strony elementu, więc próbuje przewijać jest bezużyteczny. Zawsze używamy najnowszych wersji watir-webdriver i ruby.
Nie możemy zmienić kodu HTML strony, ponieważ jesteśmy inżynierami ds. Kontroli jakości.
Nie udało się odtworzyć problemu za pomocą strony z podanym html. Czy jest więcej strony, która jest wymagana do odtworzenia problemu? Jaką przeglądarkę wypróbowałeś (tj. Czy występuje we wszystkich przeglądarkach)? Wspomniałeś o użyciu najnowszego klejnotu Watir-Webdriver, ale czy upewniłeś się, że selen-webdriver jest aktualny? –
Mówisz "Wiemy, że Selenium 2 przewija stronę do elementu ..." Czy możesz to rozwinąć? Skąd ty to wiesz? Czy widzisz, jak to się stało? –
Czy na stronie dzieje się dużo rzeczy Ajax? fragmenty strony renderowane po zakończeniu przeglądarki "ładowanie" Twój problem może wynikać z próby interakcji z elementem, zanim będzie on "gotowy" lub został przeniesiony do ostatecznej pozycji na stronie, innymi słowy problemu synchronizacji. Możesz wypróbować polecenia ręcznie przez IRB i sprawdzić, czy działają, jeśli tak, to zwykle jest to problem z synchronizacją. –