问题查找xpath c#
如何为以下HTML编写问题查找xpath c#,c#,selenium,selenium-webdriver,xpath,webdriver,C#,Selenium,Selenium Webdriver,Xpath,Webdriver,如何为以下HTML编写xpath: <span id="filename_548948">Test DC Email </span> 解决方案取决于邮件的字符串名称所包含的内容 您有一个关于精确文本的xpath查询。这意味着搜索中的每个字符都应该与网页上的相同 所以如果string nameOfEmail=“Test DC-Email” 它将正确搜索 此外,在/前面丢失可能会有所帮助根据您共享的HTML,您可以使用以下xpath: //with a constant s
xpath
:
<span id="filename_548948">Test DC Email </span>
解决方案取决于邮件的字符串名称所包含的内容 您有一个关于精确文本的xpath查询。这意味着搜索中的每个字符都应该与网页上的相同 所以如果
string nameOfEmail=“Test DC-Email”
它将正确搜索
此外,在/
前面丢失
可能会有所帮助根据您共享的HTML,您可以使用以下xpath
:
//with a constant string
Driver.FindElement(By.XPath("//span[starts-with(@id,'filename_') and contains(normalize-space(), 'Test DC Email')]")).Click();
//with a variable string
Driver.FindElement(By.XPath("//span[starts-with(@id,'filename_') and contains(normalize-space(), '" + nameOfEmail + "')]")).Click();
“电子邮件”后面似乎有一个额外的空格,您可能没有考虑。请尝试使用
//span[contains(text(),“nameOfEmail”)]
代替headdriver.FindElement(By.XPath(“//span[text()=”“+nameOfEmail+”))。单击();通过添加额外的空格来工作。感谢您的建议driver.FindElement(By.XPath(“//span[contains(text(),“+nameOfEmail+”“]”)似乎不起作用。您是对的nameOfEmail=“Test DC-Email”您是否在电子邮件后添加了空格?如“Test DC-Email”一词后的空格Email@Tanya如果要使用contains(),请删除+和“there Driver.findelelement(By.XPath(//span[contains(text(),'nameofmai'])”
,无需使用normalize-space()
。
//with a constant string
Driver.FindElement(By.XPath("//span[starts-with(@id,'filename_') and contains(normalize-space(), 'Test DC Email')]")).Click();
//with a variable string
Driver.FindElement(By.XPath("//span[starts-with(@id,'filename_') and contains(normalize-space(), '" + nameOfEmail + "')]")).Click();