Wie kann ich ein Element aus menu-popup auswählen? Zum Beispiel möchte ich Herrn wählen

Dies ist der Site-Code:

<div class="menu-popup-items"><span class="menu-popup-item menu-popup-no-icon "><span class="menu-popup-item-icon"></span><span class="menu-popup-item-text">Not selected</span></span><span class="menu-popup-item menu-popup-no-icon "><span class="menu-popup-item-icon"></span><span class="menu-popup-item-text">**Mr.**</span></span><span class="menu-popup-item menu-popup-no-icon "><span class="menu-popup-item-icon"></span><span class="menu-popup-item-text">Mrs.</span></span><span class="menu-popup-item menu-popup-no-icon "><span class="menu-popup-item-icon"></span><span class="menu-popup-item-text">Ms.</span></span><span class="menu-popup-item menu-popup-no-icon "><span class="menu-popup-item-icon"></span><span class="menu-popup-item-text">Dr.</span></span></div>
0
Lior p 18 Jän. 2019 im 11:17

3 Antworten

Beste Antwort

Ich denke, Sie sollten es mit diesem XPath versuchen

"//*[@class='menu-popup-items']" 

Es wird Ihnen helfen, jedes einzelne Element in Ihrem div-Tag zu finden

Wenn Sie nach einem bestimmten Text suchen, können Sie ein Element im Menü-Popup finden

 //*[contains(text(),'Mr.')]

Es wird Ihr Mr im Menü-Popup finden

2
Yash Patel 18 Jän. 2019 im 10:26

Bevor ich die Frage beantworte, möchte ich darauf hinweisen, dass das Hinzufügen einer ID pro Menüelement die Suche einfacher und leistungsfähiger macht.

In diesem Szenario können Sie dann Folgendes tun:

WebElement result = driver.findElement(By.id("myId"));

Wenn Sie keine ID hinzufügen können, können Sie Folgendes tun:

    WebElement result = driver.findElements(By.className("menu-popup-item-text")).stream()
                .filter(webElement -> webElement.getText().contains("Mr."))
                .findFirst().get();
0
Thibstars 18 Jän. 2019 im 09:05

Ich werde mit meinem Beispiel erklären

      //In Page Object File
      public static WebElement idProof(WebDriver driver)
        {
            WebElement element=null;
            WebDriverWait wait=new WebDriverWait(driver, 50);
            element=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='panel-body']//div[3]//div[2]//div[1]//a[1]//span[1]")));
            return element;
        }

     ` `//In Test File
      WebElement idProof = Page1.idProof(driver);
      idProof.click();

       //In Test File
       WebElement voterId = FarmerRegPage.idProofVoterId(driver, "Voter id");
       voterId.click();

  // In Page Object File
  public static WebElement idProofVoterId(WebDriver driver, String idVal)
{
    WebElement element=null;
    WebDriverWait wait=new WebDriverWait(driver, 50);
    element=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//li[contains(text(),'" + idVal +"')]")));
    return element;
}

Variable String idVal ist der Wert, den ich beim Dropdown übergebe

HTML-Snippet: - <span>Select an Option</span>

Wir haben die gleiche Situation und ich möchte Ihnen sagen, dass Sie zuerst auf Dropdown klicken sollten und danach einfach in xpath span zu li wechseln und den Namen des Artikels senden, den Sie haben muss dies auswählen sollte gut funktionieren

0
akshay patil 18 Jän. 2019 im 10:34