我是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>
在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()