在Python中使用Selenium单击具有相同类名的所有元素

时间:2015-07-10 20:30:30

标签: python selenium selenium-webdriver click

我试图点击所有"喜欢"网页上的按钮。我知道如何点击其中一个,但我希望能够点击它们。它们具有相同的类名,但ID不同。

我是否需要创建某种列表并告诉它单击列表中的每个项目?有没有办法写"点击全部"?

这是我的代码的样子(我删除了登录代码):

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
<pre id="out"></pre>

我知道我无法点击列表,因为它不是一个单独的对象,但我不知道我是怎么回事。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

这很不幸,你有两半的整体,你找不到id的多个元素,因为ID对于单个元素是唯一的。

所以将您使用的迭代方法与id和使用类的find的元素组合得到:

like = browser.find_elements_by_class_name('like_picto_unselected')
for x in range(0,len(like)):
    if like[x].is_displayed():
        like[x].click()

我强烈怀疑这对你有用。如果没有,请告诉我。