[英]How do I click a Javascript button on a webpage using python selenium
[英]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.