[英]Unable to find button with selenium python
前几天我遇到了类似的问题,我通过使用xpath解决了此问题,因为我要查找的元素不在原始URL中
我正在尝试编写一个脚本来取消关注instagram上的某个人,因此我能够进入他们的个人资料页面-只需找到按钮即可。 我试过使用xpath和CSS选择器
driver = webdriver.Chrome('C:\*\chromedriver.exe')
driver.get("https://www.instagram.com/accounts/login/")
elem2 = driver.find_element_by_name("username")
elem2.send_keys('*')
elem3 = driver.find_element_by_name("password")
elem3.send_keys('*')
elem3.send_keys(Keys.ENTER)
while True:
try:
elem4 = driver.find_element_by_css_selector(".-Cab_, .bIiDR")
elem4.click()
break
except Exception:
pass
names = ['chucknorris']
for i in names:
elem5 = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/input')
elem5.send_keys(i)
time.sleep(1)
while True:
try:
elems = driver.find_elements_by_class_name("yCE8d")
elems[0].click()
break
except Exception:
pass
## while True:
## try:
## elemL = driver.find_elements_by_xpath('//*[@id="react-root"]/section/main/div/header/section/div[2]/div/span/span[1]')
## except Exception:
## pass
#This part was just so I got the error message rather than infinite loop of nothing
time.sleep(4)
elemL = driver.find_element_by_xpath('//div[@id="react-root"]/section/main/div/header/section/div[2]/div/span/span[1]/button')
elemL.click()
'elemL'是所需的按钮元素
您的原始xpath失败有两个原因。
另一个选择是执行此操作(如果您确信按钮的文本不会经常更改:
driver.find_element_by_xpath('//*[@id="react-root"]//main//button[.="Following"]')
我的答案是使用driver.find_element_by_css_selector('.- fzfL'),它的背景颜色为attrib等(真的不确定这是否很重要)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.