Ich habe vor kurzem begonnen, an der selenium
POC für mein Projekt zu arbeiten und ich benutze IE browser
. Ich versuche, auf eine Dropdown-Box zu klicken, die anscheinend in einem <div>
-Tag liegt, aber das div
-Tag ist nicht sichtbar/versteckt auf der Seite laden und nur im DOM angezeigt, sobald es über die Benutzeroberfläche geklickt hat. Wie kann ich eine versteckte div
lokalisieren und klicken Sie auf dasWie finde ich ein verstecktes div Element mit Selenium Web Treiber
<DIV class="rfdSelectBox rfdSelectBox_Vista rfdSelectBoxDropDown" id=rfdSubMenu1485730150408 style="WIDTH: 188px; OVERFLOW-Y: auto; POSITION: absolute; LEFT: 746px; DISPLAY: none; TOP: 108px; VISIBILITY: hidden" rfdParentID="Skinnedctl00_ChangeGroupPopup_C_ddlCategory11"><UL>
<LI class=rfdSelect_selected unselectable="on">Select</LI>
<LI unselectable="on">Direct Reports</LI>
<LI unselectable="on">9 Box</LI>
<LI unselectable="on">Group</LI>
<LI unselectable="on">Manager Level</LI>
<LI unselectable="on">Functional Team</LI>
<LI unselectable="on">Job Function</LI>
<LI unselectable="on">Indirect/My Lane</LI>
<LI unselectable="on">Custom Group</LI>
<LI unselectable="on">Functional Team Leader</LI>
<LI unselectable="on">Quartile</LI>
<LI unselectable="on">No Existing Recommendation</LI>
<LI unselectable="on">ALL</LI>
<LI unselectable="on">TeamMate</LI></UL></DIV>
Ich habe versucht, einige Lösung für dieses Problem zu suchen und etwas, was wie unten gefunden haben:
WebDriverWait wait=new WebDriverWait(driver,20);
WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(add));
Actions builder = new Actions(driver);
builder.keyDown(Keys.CONTROL).click(element.findElement(add)).sendKeys(Keys.ENTER).moveByOffset(10, 25).click(element.findElement(categoryDropDown)).sendKeys(Keys.ENTER).keyUp(Keys.CONTROL).build().perform();
Hinweis: Aus irgendeinem Grund .click()
funktioniert nicht für mich, so habe ichverwendetanstelle von .click()
Was ist das Element 'Hinzufügen', die Sie als Ausgangspunkt verwenden? Ist es der Container becoz das Div, das Sie erwähnt haben, hat eine Art Elternattribut 'rfdParentID'. – Grasshopper
Hinzufügen ist eine der Schaltflächen auf der Benutzeroberfläche, auf die ich klicken möchte, noch bevor ich auf das Drop-down klicke. Im Grunde schlägt die Logik, die ich implementieren wollte, vor, irgendwo anders auf den Bildschirm zu klicken und dann auf das Dropdown zu klicken. –