2016-08-02 13 views
0

Ich versuche, einen Dropdown-Wert, der innerhalb eines Rahmens ist auszuwählen. This is the codeWie wähle ich einen Dropdown-Wert in einem Rahmen in Webdriver mit Java

Dies ist, wie wir für eine Verbindung mit in Rahmen zu schreiben, aber ich bin nicht in der Lage einen Wert von Drop-Down-

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("right")); 
WebElement el1 = wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Text"))); 
el1.click(); 
+0

Der Name des Rahmens in Ihrem Bild ist nicht "richtig", so dass es wahrscheinlich nicht den Rahmen findet. und es gibt auch keine offensichtliche Verbindung mit "Text" darin, also sollte keiner von diesem Code funktionieren. Was ist der Fehler, den Sie bekommen? –

Antwort

-1

Versuchen unter Code zu wählen:

WebElement fr = driver.findElement(By.name("main_b")); 
    driver.switchTo().frame(fr); 
    WebElement dropdown = driver.findElement(By.name("field")); 
    Select sel = new Select(dropdown); 
    sel.selectByValue("<Value to be selected>"); 

können Sie verwenden auch Befehle warten wenn Ihre Seite einige Zeit zum Laden braucht. Ich hoffe es hilft.

1
  • Zuerst für den richtigen Rahmen warten (nach HTML-Code, der Name des Rahmens ist main_b)

  • Als nächstes müssen Sie nicht einen Link dort (<a>-Tag), so By.partialLinkText kann nicht benutzt werden. Verwenden Sie By.name("field") statt

  • Schließlich statt auf sie zu klicken, erhalten eine Select Objekt: Select mySelect = new Select(el1); und wählen Sie eine der Optionen selectByVisibleText, selectByValue oder selectByIndex Methode

Also alles zusammen sieht wie folgt aus:

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("main_b")); 

Select mySelect = new Select(
    wait.until(
     ExpectedConditions.elementToBeClickable(
      By.name("field") 
))); 

// Select second option by visible text 
mySelect.selectByVisibleText("Bacon Anna"); 

// Same option selected by value 
mySelect.selectByValue("16344"); 

// Same option selected by index 
new Select(el1).selectByIndex(1);