我想重复使用python

时间:2018-07-23 10:38:07

标签: python-3.x

我对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()用作变量时将find_elements_by_css_selector放入for循环中,但出现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>

1 个答案:

答案 0 :(得分:0)

在硒中,可以使用方法find_elements_by_css_selector返回选定元素的可迭代方法,而不是使用find_element_by_css_selector返回仅第一个元素的方法。

所以您的代码应该是

buttons = openBrowser.find_elements_by_css_selector('button.EdgeButton.EdgeButton--primary.retweet-action')
for button in buttons:
    button.click()