C# 如何通过在值中使用单引号的部分onclick属性定位元素?

C# 如何通过在值中使用单引号的部分onclick属性定位元素?,c#,selenium,selenium-webdriver,xpath,C#,Selenium,Selenium Webdriver,Xpath,还有我的错误 FindElement(By.XPath("//div[starts-with(@onclick 'select_menu('1'')]")); 在onclick值周围使用转义双引号 OpenQA.Selenium.InvalidSelectorException: 'Given xpath expression "//div[starts-with(@onclick 'select_menu('1'')]" is invalid: SyntaxError: The expres

还有我的错误

FindElement(By.XPath("//div[starts-with(@onclick 'select_menu('1'')]"));

onclick
值周围使用转义双引号

OpenQA.Selenium.InvalidSelectorException: 'Given xpath expression "//div[starts-with(@onclick 'select_menu('1'')]" is invalid: SyntaxError: The expression is not a legal expression.'
此错误消息

FindElement(By.XPath("//div[starts-with(@onclick, \"select_menu('1'\")]");
…意味着xpath表达式不是有效的表达式


理由 在处理xpath时,
字符是语法的一部分。因此需要排除它们或转义它们


解决方案 要通过部分onclick事件属性定位元素,可以使用以下基于xpath的属性:

  • 使用
    的xpath以()开头

  • 使用
    的xpath以()开头
    包含()

  • 在onclick事件中使用整个值的xpath:

FindElement(By.XPath("//div[starts-with(@onclick, \"select_menu('1'\")]");
OpenQA.Selenium.InvalidSelectorException: 'Given xpath expression "//div[starts-with(@onclick 'select_menu('1'')]" is invalid: SyntaxError: The expression is not a legal expression.'
FindElement(By.XPath("//div[starts-with(@onclick, 'select_menu')]"));
FindElement(By.XPath("//div[starts-with(@onclick, 'select_menu') and contains(@onclick, 'doc')]"));
FindElement(By.XPath("//div[@onclick=\"select_menu('1','doc_107094');\"]"));