繁体   English   中英

如何通过Selenium C#使用文本查找元素

[英]How to find an element using text through Selenium C#

我有以下 html:

<p class="k-reset"><a class="k-icon k-i-expand" href="#" tabindex="-1"></a>Unit: QA Room: 1</p>

我似乎无法获得单击此元素的有效语法。 我尝试了以下方法:

IWebElement webElement5 = Driver.Instance.FindElement(By.XPath("//a[@class='k-icon k-i-expand']"));
webElement5.Click();
IWebElement webElement5 = Driver.Instance.FindElement(By.XPath("//p[text(), 'Unit: QA Room: 1']"));
webElement5.Click();

当我尝试使用 text() 时,我收到一条错误消息,指出它不是有效的 XPath 表达式。 我在互联网上看到的任何地方都使用这种语法。 我对 c#/Selenium/XPath 值很陌生。 很感谢任何形式的帮助。

你混合了contains部分语法

"//p[contains(text(), 'Unit: QA Room: 1')]"

对于直接匹配使用=

"//p[text()='Unit: QA Room: 1']"

要单击元素,您可以使用以下任一解决方案:

  • CSS选择器

     Driver.Instance.FindElement(By.CssSelector("pk-reset>ak-icon.ki-expand")).Click();
  • XPath 1

     Driver.Instance.FindElement(By.XPath("//p[@class='k-reset']/a[@class='k-icon ki-expand']")).Click();
  • XPath 2

     Driver.Instance.FindElement(By.XPath("//p[@class='k-reset' and normalize-space()='Unit: QA Room: 1']")).Click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM