Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA-如何在selenium中使用xpath_Java_Select_Xpath_Selenium - Fatal编程技术网

JAVA-如何在selenium中使用xpath

JAVA-如何在selenium中使用xpath,java,select,xpath,selenium,Java,Select,Xpath,Selenium,我有以下html代码: <select name="category" id="category"> <option value="0">&laquo;Seleziona la categoria&raquo;</option> <option value='1' style='background-color:#ddd' disabled="disabled" id='cat1' >-- VEICOLI --<

我有以下html代码:

<select name="category" id="category">
    <option value="0">&laquo;Seleziona la categoria&raquo;</option>
    <option value='1' style='background-color:#ddd' disabled="disabled" id='cat1' >-- VEICOLI --</option>
    <option value='2'  id='cat2' >Auto</option>
</select>
但每个人都给了我:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"/select[@id=category]/option[@id=cat2]"} ( and other xpath i tried)
Command duration or timeout: 1.52 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html

正确的语法是什么?有人能帮我吗?

您的XPath语法不正确。需要在匹配的文本属性值周围加引号。尝试:

d.findElement(By.xpath("//select[@id='category']/option[@id='cat2']")).click();

阅读我建议,如果您知道选项的ID,您只需使用d.findElement(By.ID(“cat2”));它很简单,在ID存在时始终有效,并且不需要XPath知识。如果您正在搜索具有已知ID的元素,则无需调用XPath。XPath已启用,但您可以通过执行d.findElement(by.XPath(//option[@ID='cat2'])来进一步缩减它;
d.findElement(By.xpath("//select[@id='category']/option[@id='cat2']")).click();