我的类名处于活动状态,然后在span(嵌套)中有一个称为活动文本的唯一文本。活动的类名在其他类名中是唯一的,然后嵌套的文本是唯一的。我将如何单击。我使用了以下方法。
FindElement(By.XPath("//li[@class='active']//*[contains(.,'active text')]"));
我也尝试过
findelement(BY.xpath(//li[@class='active']//div//div//div//span[contains(.,'active text')]"))
也尝试过此
FindElement(By.XPath("//li[contains(@class,'active')] and //span[contains(.,'active text')]")).Text;
每次我都找不到这样的元素有什么想法吗这是html代码
<li class="active">
<div class="a">
<div class="b">
<div class="c">
<h1></h1>
<h3 class="d">
<div class="e">
<span class="f">
Active Text</span>
</div></div></div></div>
</li>
您可以使用以下Locator Strategies之一:
CssSelector
:
FindElement(By.CssSelector("li.active span.f"));
XPath
1:
FindElement(By.XPath("//li[@class='active']//span[normalize-space()='Active Text']"));
XPath
2:
FindElement(By.XPath("//li[@class='active']//span[@class='f' and normalize-space()='Active Text']"));
FindElement(By.XPath("//li[@class='active']//span[contains(text(),'Active Text')]"));
OR
FindElement(By.XPath("//li[@class='active']//span[@class='f' and contains(text(),'Active Text')]"));
请尝试上面的代码。两者都会起作用。另外,请告知是否需要澄清]
[将您的xpath
稍加修改以明确声明span
标签。字母大小写也很重要。
FindElement(By.XPath("//li[@class='active']//span[contains(., 'Active Text')]")).Text;