Selen.IsElementPresent mit einer Select-Option-text (C#)
Ich bin mit Selen in C# mit Selenium RC zu tun, einige automatisierte Interaktion testen, aber begegnet sind, ein Stein des Anstoßes.
Angesichts dieser HTML:
<select id="my-select-list">
<option value="1">First option</option>
<option value="2">Second option</option>
<option value="3">Third option</option>
<option value="4">Fourth option</option>
</select>
Ich testen wollen, um sicherzustellen, dass die option "Dritte Option" ist auf der Seite vorhanden.
Alle der folgenden tests fehlgeschlagen sind, d.h. return false:
Selenium.IsElementPresent("//select/option[@label='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//select[contains(option, 'Third option')]")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")
Ist es eine Einschränkung von Selenium (RC /.NET) oder gibt es einen anderen Weg auswählen?
Ps. Ich weiß, ich könnte testen mit der option Wert, aber das kann sich ändern, und der text definitiv nicht.
EDIT: PEBKAC-Fehler
Sorry, my bad. Scheint Selen wurde laden einem anderen Ort als das, was ich dachte, es war laden.
Die folgenden XPath-Abfragen arbeiten alle:
Selenium.IsElementPresent("//option[text()='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine XPath ist ein bisschen rostig, aber haben Sie versucht,...
Schritt 1: Immer Alle Optionen in der Drop-Down -
Select Select = new Select(driver.findElement(By.id("mein select-Liste")));
String [] options = select.getOptions();
Schritt 2: Überprüfen Sie das Wetter der jeweiligen Option("Dritte Option") in der Drop-Down.
for(String option:Optionen)
{
if(!- option.equals("Dritte option"))
SCHEITERN;
sonst
PASS;
}