我想指定xpath到我的网页元素。
<select id=groupSelect>
<option value="data" >First value</option>
<option value="data" >second value</option>
</select>
我想获得&#34; First value&#34;这是选项内的文字。但我不知道如何获取文本。
By.xpath("//select[@id='groupSelect']/option[@value=???']"))
答案 0 :(得分:6)
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']")
或通过索引获取:
By.xpath("//select[@id='groupSelect']/option[1]")
或者你可以检查两者。
答案 1 :(得分:1)
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();
}
}
}
}