尝试在页面上使用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.
}
}
}