Das Problem ist einfach. Ich muss auf ein Element in einem Popup klicken, das von JavaScript-Code generiert wird. Die Seite ist nur in IE verfügbar und die Elemente im Popup können nicht ausgewählt werden, wenn die Entwickler-Tools aktiviert sind. Im Grunde kenne ich den xpath nicht, aber ich habe das Javascript, das das Popup erzeugt. Dies ist das Pop-up auf der Seite:Selen finden Element in einem Javascript-Popup
Und dies ist der JavaScript-Code, um das Popup erzeugt:
function pickDefaultType() {
// create popup
thePopup = window.createPopup();
var doc = thePopup.document;
var body = doc.body;
// add stylesheet
var oSheet = doc.createStyleSheet();
oSheet.addRule("TD", "cursor: hand; font-family: Verdana, Arial, sans-serif; font-size: " + $('body').css('font-size') + ";");
oSheet.addRule(".TableStyle", "overflow-y: auto; overflow-x: visible;");
oSheet.addRule(".DivStyle", "height: 100%; overflow-y: auto; overflow-x: visible; border: #C1D3E7 1px solid; color: #404040");
oSheet.addRule(".tableHeading", "background-color: #326894; color: white;");
// create scrolling div
var theDiv = thePopup.document.createElement("DIV");
theDiv.className = "DivStyle";
body.appendChild(theDiv);
theDiv.innerHTML = "<table cellpadding='2' cellspacing='0' width='100%' height='100%'><tr><td id='0'>" + sam.appStrings.defaultDateTypeNone + "</td><tr><tr><td id='1'>" + sam.appStrings.defaultDateTypeCurrent + "</td><tr><tr><td id='2'>" + sam.appStrings.defaultDateTypeOffset + "</td><tr><tr><td id='3'>" + sam.appStrings.defaultDateTypeFixed + "</td><tr></table>";
var theTable = theDiv.firstChild;
theTable.className = "TableStyle";
theTable.style.display = "";
theTable.onclick = selectDefaultType;
theTable.onmouseover = mouseOver;
theTable.onmouseout = mouseOut;
// deterine size to show the popup
thePopup.show(10, 10, 10, 10, typeSpan);
var tableWidth = theTable.offsetWidth + 18;
var tableHeight = theTable.offsetHeight + 2;
thePopup.show(0, typeSpan.clientHeight + 2, tableWidth, tableHeight, typeSpan);
}
Ich habe versucht, das Element "None" mit XPath und id Ortung, habe ich warte auch, z
WebDriverWait wait = new WebDriverWait(webDriver, 3);
WebElement elem = wait.until(ExpectedConditions.elementToBeClickable(By.id("0")));
Ich habe auch versucht, die Alert-Klasse von Selen:
Alert promptAlert = webDriver.switchTo().alert();
String alertText = promptAlert.getText();
System.out.println("Alert text is " + alertText);
Das Element kann nicht gefunden werden. Die Warnung ist nicht vorhanden.
Wenn das Popup in einem Rahmen ist, wie finde ich den Namen, um darauf zu wechseln?
Bitte beachten Sie, dass ich das Dropdown-Menü erfolgreich mit Selenium geöffnet habe, kann einfach nicht die Elemente finden, um darauf zu klicken.
Vielen Dank im Voraus!
Ich wurde von einem Entwickler gesagt, dass. HTC-Dateien verwendet werden, um das Popup zu rendern. Kann ich dann auf die Elemente in diesem Popup zugreifen? –