如何在selenium web驱动程序中使用css选择多个“div-li-a href”下的文本

时间:2016-07-29 06:13:49

标签: selenium-webdriver css-selectors

我想选择li下的标签。 我试过下面的css:

<div class="grid_10">
 <div class="box round first fullpage">
   <h2>View Theme Information</h2>
   <div class="block ">
     <script type="text/javascript"> $(window).load(function() { $('#loading').hide(); }); </script>
     <div class="block" style="margin-bottom: 40px;">
       <div id="loading" style="display: none;">  
        <div id="tabs-container" style="height:500px;">
          <ul class="tabs-menu">
            <li class="">
            <li class="current">
              <a href="#secondtab">Active Companies/Filing</a>
            </li>
delete from
account
where datediff(hour,createddate,getdate())>=24

请帮帮忙?

3 个答案:

答案 0 :(得分:0)

By.CssSelector("[href='#secondtab']").Text;  

如果你得到NoSuchElementExceptions,我注意到一个isLoading元素,你可能必须确保在它找到选项卡中的元素之前加载它。您可能还需要注意是否有类似的元素具有相同的标记但只是没有显示,这意味着您可能需要确保只查找显示的元素。

我也意识到你想要通过文本找到元素,而不是想要获取该元素的文本。你知道#secondTab的元素总会有那个文本吗?如果直接调用href至少获取元素,请告诉我。也许你需要进行双重验证,在那里你获取该链接的文本,然后在你点击之前找到你正在寻找的文本?

答案 1 :(得分:0)

实际上-fx-body-color中没有功能.spinner .increment-arrow-button, .spinner .decrement-arrow-button { -fx-body-color: yellow; } .spinner .increment-arrow-button:hover, .spinner .decrement-arrow-button:hover { /* interpolate color between yellow and red based on first color brightness */ -fx-body-color: ladder(#444, yellow 0%, red 100%); } .spinner .increment-arrow-button:hover:pressed, .spinner .decrement-arrow-button:hover:pressed, .spinner .increment-arrow-button:pressed, .spinner .decrement-arrow-button:pressed { /* interpolate color between yellow and red based on first color brightness */ -fx-body-color: ladder(#AAA, yellow 0%, red 100%); } 。因此,使用text(),您无法使用文本定位元素,因为无法使用内部文本进行定位。您应该尝试使用cssSelector,如下所示

cssSelector

或者

xPath

希望它有帮助...:)

答案 2 :(得分:-1)

如果只有一个链接包含“Active Companies / Filing”文本,那么您可以使用

By.cssSelector(li a[text()='Active Companies/Filing'])

试试吧。它应该工作。