Ich versuche Elemente in "Kategorie" one-by-one auf this page mit wählen:Wählen Sie Elemente einzeln in Drop-Down-Liste mit Selenium WebDriver
WebElement category = new WebDriverWait(driver, 10)
.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("tr[__gwt_row='" + rowIndex + "'] > td > div")))
.get(3);
category.click();
category.findElement(By.tagName("select")).sendKeys("Businesses");
category.click();
category.findElement(By.tagName("select")).sendKeys("Contacts");
Werfen Sie diese: „abgestanden Element Referenz: element ist nicht an das Seitendokument angehängt "
Vielleicht existiert noch ein anderer Weg, es zu tun?
UPD: Es funktioniert, wenn ich dies tun:
WebElement categoryBusinesses = new WebDriverWait(driver, 10)
.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("tr[__gwt_row='" + rowIndex + "'] > td > div")))
.get(3);
categoryBusinesses.findElement(By.tagName("select")).sendKeys("Businesses");
WebElement categoryContacts = new WebDriverWait(driver, 10)
.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("tr[__gwt_row='" + rowIndex + "'] > td > div")))
.get(3);
categoryContacts.findElement(By.tagName("select")).sendKeys("Contacts");
Aber ist es ein richtiger Weg?
UPD2: Ich habe auch versucht dies:
WebElement element = categoryBusinesses.findElement(By.tagName("select"));
Select category = new Select(element);
category.selectByIndex(0);
category.selectByIndex(1);
Aber es nicht funktioniert.
Ich glaube, Sie brauchen einen Blick auf, wie Select-Elemente arbeiten in WebDriver http://stackoverflow.com/documentation/selenium-webdriver/6426/select- class # t = 201611251135026517728 Wenn Sie sie wie ein WebElement behandeln, kann dies zu einem merkwürdigen Verhalten führen. – Josh
@Josh ich habe meine Frage aktualisiert. Überprüfen Sie bitte das. –
Nach dem Blick auf den Fehler: "Veraltete Element Verweis: Element ist nicht an das Seitendokument angehängt", habe ich eine Frage. Machst du eine Switch-Fenster-Operation? –