selenium查找没有名称、id和唯一类的元素

2024-09-27 21:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图刮一个网站,有几个标签可以点击它,但每个可点击的标签没有唯一的id,名称或类。在

网站的选项卡部分看起来很像:

enter image description here

包含它们的HTML无序列表在站点中的编码如下:

<ul class="nav nav-tabs">
    </li><!-- end ngRepeat: tab in tabState.tabs --><li ng-class="{active: active, disabled: disabled}" ng-repeat="tab in tabState.tabs" heading="Movies" active="tab.active" select="select(tab)" class="ng-scope ng-isolate-scope">
        <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding">Movies</a>
    </li><!-- end ngRepeat: tab in tabState.tabs --><li ng-class="{active: active, disabled: disabled}" ng-repeat="tab in tabState.tabs" heading="Music" active="tab.active" select="select(tab)" class="ng-scope ng-isolate-scope active">
        <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding">Music</a>
    </li><!-- end ngRepeat: tab in tabState.tabs --><li ng-class="{active: active, disabled: disabled}" ng-repeat="tab in tabState.tabs" heading="Books" active="tab.active" select="select(tab)" class="ng-scope ng-isolate-scope">
        <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding">Books</a>
    </li><!-- end ngRepeat: tab in tabState.tabs --><li ng-class="{active: active, disabled: disabled}" ng-repeat="tab in tabState.tabs" heading="Magazines" active="tab.active" select="select(tab)" class="ng-scope ng-isolate-scope">
        <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding">Magazines</a>
    </li>
</ul>

如何使用python/selenium单击所需的选项卡?让我们想象一下理想的标签是音乐。在

我试过这样的方法:

^{pr2}$

但是,电影、音乐、书籍和杂志都是class='ng-binding'


Tags: inlingselecttabclassendactive
2条回答

请尝试以下代码:

browser.find_element_by_link_text("Movies")

您可以使用该选择器获取所有这些元素,并在它们之间循环,并根据文本进行选择。在

allTabs = browser.find_elements_by_css_selector("a[class='ng-binding']")

for tab in allTabs:
    if tab.text == 'Movies':
        tab.click()   #Or do something else with it    
        break;

相关问题 更多 >

    热门问题