找不到具有定位器的元素.已尝试Xpath和CSS选择器



尝试在页面上使用xpath定位器和css都不起作用

我用 xpath 尝试了以下内容:

#Wait Until Page Contains Element    //a[contains(text(), 'Service Clusters')]

还尝试了以下方法:

#Click Element                       //div[@id='austabsserviceTabs']/ul/li[2]/a

和 css 选择器

Wait Until Page Contains Element    css=a[href='#austabsserviceTabs-1']
Click Element                       css=a[href='#austabsserviceTabs-1'] 

但是,我在所有尝试中都遇到了相同的错误:找不到元素"//a[包含(text(text((,"服务集群"(]"。

这是页面中的HTML,我正在尝试选择"服务群集"选项卡:

<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li class="ui-state-default ui-corner-top">
<a href="#austabsserviceTabs-0" class="ausTabLabel">Service Profiles</a>
</li>
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active">
<a href="#austabsserviceTabs-1" class="ausTabLabel">Service Clusters</a>
</li>
<li class="ui-state-default ui-corner-top">
<a href="#austabsserviceTabs-2" class="ausTabLabel">Service Globals</a>
</li>
</ul>

您可以选择服务集群的类属性或 href 属性。这取决于你。我已经测试了给定 html 的 xpath,我发现这个//a[@class='ausTabLabel']Xpath 对您的服务集群有效。如果你想选择 href 属性,那么你可以做一些类似的事情//a[@href='#austabsserviceTabs-1']

Xpath的特点是你可以在html中选择任何你想要的东西。如果您需要有关 xpath 的进一步指导,请查看此网站:https://www.guru99.com/xpath-selenium.html。

尝试这种方式可能会对您有所帮助。

var ul = driver.findElements(By.XPath("//ul[contains(@class,'ui-tabs-nav')]")).ToList();
for (int i = 0; i < ul.Count; i++)
{
var Li = ul[i].FindElements(By.TagName("li")).ToList();
foreach (IWebElement item in Li)
{
if (item.Text == "Service Clusters")
{
//here do whatever you want to do
//break; if you want.
}
}
}

最新更新