4 回答
![?](http://img1.sycdn.imooc.com/533e4c5600017c5b02010200-100-100.jpg)
TA贡献1966条经验 获得超4个赞
你可以尝试find_elements_by_xpath:
from selenium import webdriver
driver = webdriver.Chrome(r"C:\Users\name\Downloads\q\chromedriver.exe")
driver.get("https://www.plusportals.com/GuardianAngels")
login_button = driver.find_elements_by_xpath("//*[@class='btn btn-primary pull-right']")
login_button[0].submit()
输出:
![?](http://img1.sycdn.imooc.com/54584d6100015f5802200220-100-100.jpg)
TA贡献1828条经验 获得超4个赞
要等待元素并在页面加载后单击,请执行以下操作。
还添加了登录。
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "UserName"))).send_keys("AAA")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "Password"))).send_keys("AAA")
login_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.btn.btn-primary.pull-right")))
login_button.click()
进口
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
![?](http://img1.sycdn.imooc.com/5458655200013d9802200220-100-100.jpg)
TA贡献1856条经验 获得超17个赞
将第 5 行替换为以下内容应该可以解决问题:
login_button = driver.find_elements_by_class_name("btn.btn-primary.pull-right")
![?](http://img1.sycdn.imooc.com/545863aa00014aa802200220-100-100.jpg)
TA贡献1830条经验 获得超9个赞
在第 4 行中,您正在使用:
login_button = driver.find_elements_by_class_name("btn btn-primary pull-right")
有多种方法可以做到这一点:
方法一:
您可以替换driver.find_elements_by_class_name
为driver.find_element_by_class_name
login_button = driver.find_element_by_class_name("btn btn-primary pull-right")
方法二:
您必须在那里放置一个 [0],因为单击函数不接受列表,并且要绕过它,您必须从列表中获取第一项并单击它。
login_button[0].click() or login_button[0].submit()
添加回答
举报