我想指定xpath到我網頁的一個元素。如何通過xpath檢索下拉列表中的文本
我想獲得「第一個值」,它是選項中的文本。但我不知道如何獲得文本。
By.xpath("//select[@id='groupSelect']/option[@value=???']"))
我想指定xpath到我網頁的一個元素。如何通過xpath檢索下拉列表中的文本
我想獲得「第一個值」,它是選項中的文本。但我不知道如何獲得文本。
By.xpath("//select[@id='groupSelect']/option[@value=???']"))
selenium
可以在一個很好的和方便的方式handle select/option
。
這裏是你如何選擇由可視文本的選項(在Java爲例):
Select select = new Select(driver.findElement(By.id("groupSelect")));
select.selectByVisibleText('First value');
如果你仍然想有一個基於XPath的解決方案,可以選中該選項value
和text
:
By.xpath("//select[@id='groupSelect']/option[@value='data' and . = 'First value']")
或指數得到它10
或者您可以檢查兩者。
感謝您的回答,如果我想獲得第三個選項元素,並且想要檢查該元素是否存在,我該如何測試它?其實我不知道我在下拉列表中有多少項。 – user3409650 2014-09-26 07:40:48
@ user3409650您可以將調用'select.selectByVisibleText('Third value');'放入'try/catch'塊中,查看是否拋出了org.openqa.selenium.NoSuchElementException異常 - 如果拋出 - 沒有這樣的選擇。希望你明白我想說的話。 – alecxe 2014-09-26 12:19:29
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Example {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.Example.com/");
//List the Values
List<WebElement> options = driver.findElements(By.xpath("//*[@id='m']//option"));
//Count the Values
System.out.println(options.size());
for(int i=0;i<options.size();i++){
//Print the text
System.out.println(options.get(i).getText());
String optionName = options.get(i).getText();
//If u want to select the perticular Value
if(optionName.equals("xxxxx")){
//Instead of xxxxx u put the value option 1 or 2 or 3 like that
//If the value of option 1 is like Books, u want to select that put Books replace with xxxxx
options.get(i).click();
}
}
}
}
是您正在使用的硒和java綁定? – alecxe 2014-09-25 16:15:08