Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 如何从包含撇号的下拉列表中选择答案?_Java_Xpath_Selenium_Webdriver - Fatal编程技术网

Java 如何从包含撇号的下拉列表中选择答案?

Java 如何从包含撇号的下拉列表中选择答案?,java,xpath,selenium,webdriver,Java,Xpath,Selenium,Webdriver,当我尝试使用webdriver在所有浏览器中选择一个带有撇号的答案时,我遇到了这个无效的选择异常。我尝试使用反斜杠来转义撇号,但我认为这是因为它存储在变量中,无法转义: org.openqa.selenium.InvalidSelectorException: The xpath expression '//select[@name='titleCode']/option[@value='I'm in college']' cannot be evaluated or does notresul

当我尝试使用webdriver在所有浏览器中选择一个带有撇号的答案时,我遇到了这个无效的选择异常。我尝试使用反斜杠来转义撇号,但我认为这是因为它存储在变量中,无法转义:

org.openqa.selenium.InvalidSelectorException: The xpath expression '//select[@name='titleCode']/option[@value='I'm in college']' cannot be evaluated or does notresult in a WebElement (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 219 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:08:56'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_25'
Driver info: driver.version: EventFiringWebDriver
Session ID: 6efb7eae-3afb-4ab1-948d-146b42d2c96c
Command duration or timeout: 701 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:09:54'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.0-32-generic', java.version: '1.6.0_31'
Driver info: driver.version: RemoteWebDriver
Session ID: 1350062508295
下面是java代码。变量quesiton和answer是数据库中的字符串列表:

driver.findElement(By.xpath("//select[@name='" + question + "']/option[@value='" + answer + "']")).click();
以下是HTML:

<select id="select1" class="select" name="titleCode">
<option selected="" value="">Please select...</option>
<option value="I'm in high school">I'm in high school</option>
<option value="I'm in college">I'm in college</option>
</select>
是否有一种方法可以转义存储在变量中的字符串的撇号,或者以另一种方式转义,或者撇号甚至是问题所在?任何帮助都将不胜感激。谢谢 布莱恩

试试看:

    <select id="select1" class="select" name="titleCode">
    <option selected="" value="">Please select...</option>
    <option value="I&#39;m in high school">I&#39;m in high school</option>
    <option value="I&#39;m in college">I&#39;m in college</option>
</select>
选项标记之间不应该是必需的,因为它们没有发布,只是以防万一


我希望这能起作用

如果您需要动态的答案,我不想在查询的这一部分使用XPath。把答案圈起来。如果它不包含引号,它能工作吗?是的,当它不包含引号时它能工作。是的,我想我可以从列表中随机抽取一个值。我仍然很好奇是否有一种方法可以在变量中转义引号。我做了一些简单的方法,并且按照millimoose选择的方法做了,但这肯定是一种我没有尝试过的方法。