我尝试登录https://login.economicmodeling.com/login/login.php,但是输入的用户名没有显示,运行命令输入密码后,它会自动打开一个新标签,而无需实际输入密码。有人可以帮忙吗?谢谢!
from selenium import webdriver
driver = webdriver.Safari()
driver.get("https://login.economicmodeling.com/login/login.php")
driver.find_element_by_class_name("cc-btn cc-dismiss").click()
user = driver.find_element_by_css_selector('input[name = user]')
password = driver.find_element_by_css_selector('input[name = password]')
user.clear()
user.send_keys('xxx')
password.clear()
password.send_keys('xxx')
driver.find_element_by_id("submitbutton").click()
答案 0 :(得分:0)
在“用户”和“密码”属性周围缺少单引号。
user = driver.find_element_by_css_selector("input[name='user']")
password = driver.find_element_by_css_selector("input[name='password']")
发送表单应该通过提交完成,而不是单击。
driver.find_element_by_id("submitbutton").submit()
答案 1 :(得分:0)
根据您要登录https://login.economicmodeling.com/login/login.php的问题,您需要诱使 WebDriverWait 使所需的元素可点击,并且可以使用以下解决方案:< / p>
代码块:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("https://login.economicmodeling.com/login/login.php")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.fancy.form#userinput"))).send_keys('xxx')
driver.find_element_by_css_selector('input.fancy.form#passwordinput').send_keys('xxx')
driver.find_element_by_css_selector("input.submit.button.success#submitbutton").click()
浏览器快照: