問題は簡単です。私はjavascriptコードによって生成されるポップアップの要素をクリックする必要があります。このページはIEでのみ使用可能で、開発者ツールがオンの場合はポップアップの要素を選択できません。基本的に私はxpathを知らないが、私はポップアップを生成するjavascriptを持っている。これは、ページ上のポップアップです:javascriptポップアップでのセレン発見要素
そして、これはポップアップを生成するJavaScriptコードです:
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);
}
私は私が使用し、XPathとidを持つ要素「None」を見つけるん試してみました同様に待つ
WebDriverWait wait = new WebDriverWait(webDriver, 3);
WebElement elem = wait.until(ExpectedConditions.elementToBeClickable(By.id("0")));
私はまた、セレンからAlertクラスを試してみました:
Alert promptAlert = webDriver.switchTo().alert();
String alertText = promptAlert.getText();
System.out.println("Alert text is " + alertText);
を要素が見つかりません。アラートは存在しません。
ポップアップがフレーム内にある場合は、その名前をフレームに切り替えるにはどうすればよいですか?
私はSeleniumを使用してドロップダウンを正常に開いたことに注意してください。ちょうどそれをクリックするための要素が見つかりません。
ありがとうございます!
私は、開発者から.htcファイルがそのポップアップのレンダリングに使用されていると言われています。このポップアップの要素にアクセスできますか? –