Ich bin neu Selenium WebDriver Tests und ich versuche es bei der Arbeit zu verwenden. Ich habe viele Kombinationen von Selektoren, XPaths usw. ausprobiert, aber ich kann nicht darüber hinausgehen. Ich habe auch viele ähnliche Themen auf Stackoverflow durchsucht, leider ohne vorhergesehene Ergebnisse. Was ich brauche, ist in der Lage zu sein, auf den "NO SERVICE" -Button (a href) zu klicken. Wenn ich es versuche, bekomme ich immer wieder den Fehler, dass dieses Element nicht sichtbar ist. Wenn ich versuche, diesen Fehler mit "Warten" zu behandeln, erhalte ich einen weiteren Fehler "Erwartete Bedingung fehlgeschlagen: Warten auf Sichtbarkeit des Elements ...". Was mache ich falsch?Selenium WebDriver Java - Element ist nicht sichtbar
Mein Code:
WebDriverWait waitWait = new WebDriverWait(driver, 40);
waitWait.until(ExpectedConditions.visibilityOfElementLocated(By.className("withoutService")));
WebElement x = driver.findElement(By.className("withoutService"));
x.click();
und auch ein HTML-Code-Schnipsel aus Homepage:
<div id="fancybox-outer">
<div id="fancybox-content">
<div style="width:auto;position:relative;">
<div id="serviceReminder" style="width: 765px">
<form id="serviceReminderFrom" method="post">
<div class="homeMessage">
<div class="innerMessage">
<input type="hidden" id="serviceToAddReminderFromAction" name="F_ACTION" value="">
<input type="hidden" id="itemsWithServices" name="itemsWithServices" value="">
<input type="hidden" name="eventTypeName" value="Something">
<div class="ServicesDelivery"><span class="disable-button"></span>
<a href="javaScript:void(0);" rel="3" class="withoutService btn btn-fourth" onclick="registerButtonClickOnPopup('NO SERVICE'); setTimeout(function(){registerButtonClickOnPopup('NO SERVICE');},400);">NO SERVICE</a>
<a href="javascript:void(0)" rel="1" class="next js-tooltip btn btn-second" onclick="registerButtonClickOnPopup('ADD SERVICE'); setTimeout(function(){registerButtonClickOnPopup('ADD SERVICE');},400);">ADD SERVICE</a>
<div class="none">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</form>
</div></div></div><a id="fancybox-close" style="display: inline;"></a><div id="fancybox-title" class="" style="display: none;">
</div><a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a><a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a></div>
Das Element, nach dem Sie suchen, ist in einer Eingabe enthalten, die "versteckt" ist, machen Sie etwas in Ihrem Test, damit die Eingabe nicht ausgeblendet wird? – Josh
@Josh, nein, es ist kein Teil der versteckten "Eingabe". AFAIK, 'input' Element kann nur Attribute enthalten, aber keine anderen Knoten. – Andersson