我想在python中迭代我的一组按钮点击

问题描述 投票:0回答:1

我是python的新手,我正在尝试构建一个代码,该代码会自动转发具有特定twitter句柄的推文(基本上是我的关键字)。我可以点击第一条推文,但无法将其迭代到其他推文。下面是我的第一次转推的代码。

retweet_icon = openBrowser.find_element_by_css_selector('button.ProfileTweet-actionButton.js-actionButton.js-actionRetweet')
retweet_icon.click()
retweet_btn = openBrowser.find_element_by_css_selector('button.EdgeButton.EdgeButton--primary.retweet-action')
retweet_btn.click()

我基本上希望这两个动作循环,我尝试将click()放入for循环,同时使用find_elements_by_css_selector作为其变量,但我得到selenium.common.exceptions.ElementNotVisibleException: Message: element not visible"错误。

下面是按钮的代码,我想循环。

 <button class="ProfileTweet-actionButton  js-actionButton js-actionRetweet" data-modal="ProfileTweet-retweet" 
  type="button" aria-describedby="profile-tweet-action-retweet-count-aria-1021252475133628416">
  </button>
python-3.x
1个回答
0
投票

在selenium中,您可以使用方法find_elements_by_css_selector返回一个可迭代的选定elemenets而不是find_element_by_css_selector,它只返回第一个元素。

所以你的代码应该是

buttons = openBrowser.find_elements_by_css_selector('button.EdgeButton.EdgeButton--primary.retweet-action')
for button in buttons:
    button.click()
© www.soinside.com 2019 - 2024. All rights reserved.