我对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>
答案 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()