簡體   English   中英

如何使用Selenium和python單擊網頁上的所有“ role = button”

[英]How to Click on all “role=button” on a webpage using selenium and python

我正在嘗試使用python和Selenium創建我的第一個項目,但是我是一個新手,它只是一個簡單的項目,要求用戶提供他/她的Facebook用戶名和密碼,然后登錄重定向到facebook.com/user/下一頁並取消關注用戶關注的所有人。

這是我的代碼

我使用此代碼導入了必要的模塊

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import time

我關閉了Facebook彈出通知,以避免破壞代碼。

##SHUTTING POPUP NOTIFICATION
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("start-maximized")
driver = webdriver.Chrome(chrome_options=chrome_options)

定義了一個登錄func ,該func在打開Facebook后需要用戶名和密碼。

  def login():
        #Login
        user = input('Whats your username or email    ')
        passw = input('Input your password    ')
        driver.get("https://www.facebook.com/")
        username = driver.find_element_by_name("email")
        username.send_keys(user)
        password = driver.find_element_by_name("pass")
        password.send_keys(passw)
        password.send_keys(Keys.RETURN)

接下來,我只創建了3秒。 時間功能

  def timeToSleep():
     time.sleep(3)

getPage函數是用於重定向到我的目的地(即用戶關注)的函數

  def getPage():
        ##Get Page
        driver.get("https://www.facebook.com/Username/ID/following")

這是單擊功能,可以單擊我想要的位置,這也是我的問題所在。.我想開始單擊以下所有帶有單擊功能的波紋管。[檢查img]

  def click():
        xpath = "//a[@role='button']"
        a=driver.find_elements_by_xpath(xpath)
        for posts in a:
              posts.click()

點擊以下

但是我現在的問題是(除了錨屬性“ role ='button'”之外,以下按鈕沒有任何類或ID)。

該代碼可以正常工作,但它們是網頁上具有相同role ='button'屬性的其他元素,例如下面的pix: 工具欄 facebook工具欄具有相同的角色按鈕內容。我的問題是:我如何使Selenium跳過工具欄,然后從以下按鈕開始單擊。

很抱歉,如果我的解釋不好...我將非常感謝任何機構的幫助。

提前致謝

我在Facebook上關注Mark Zuckerberg,這是單擊取消關注鏈接的xpath:

//a[text()='Mark Zuckerberg']/../../following-sibling::div[2]/a  

同樣,您可以在情況下替換Person的名稱,以單擊Unfollow鏈接。

如果您的朋友中沒有一個跟隨您關注的人,那么您也可以使用此XPATH:

//a[contains(@data-hovercard,'/ajax/hovercard/user.php?')]/../../following-sibling::div/a   

獨立於人名。 請注意,這將為您提供Web元素列表,而不是單個元素。 [這很適合您的要求,因為您想單擊每個取消關注鏈接]。

HTH!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM