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

Selenium 找不到具有定位器的元素。尝试Xpath和CSS选择器,selenium,robotframework,Selenium,Robotframework,尝试在页面上使用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 Co

尝试在页面上使用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[containstext,'Service Clusters']”

这是页面中的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>

这样试试可能对你有帮助

  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.
            }
      }
   }

您可以选择服务集群的class属性或href属性。由你决定。我已经测试了给定html的xpath,我发现这个//a[@class='austablebel']xpath对于您的服务集群是有效的。如果要选择href属性,则可以执行类似于//a[@href='austabsserviceTabs-1']

Xpath的特点是,您可以在html中选择任何想要的内容。如果您需要有关xpath的进一步指导,请访问以下网站: