selenium用于发送密钥时出错:str'对象没有属性'send\u keys'

2024-10-01 07:14:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我要用硒擦洗;我按照说明进行操作,但在发送用户名和密码时,关于“发送密钥”有一个错误:

 runfile('C:/Users/thmag/untitled3.py', wdir='C:/Users/thmag')
    C:\Users\thmag\untitled3.py:20: DeprecationWarning: use options instead of chrome_options
      driver= webdriver.Chrome(driver_path, chrome_options = options)
    Traceback (most recent call last):
    
      File "C:\Users\thmag\untitled3.py", line 30, in <module>
        user_ele.send_keys('MyEmail@gmail.com')
    
    AttributeError: 'str' object has no attribute 'send_keys'

我的代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import  Keys
import pandas as pd
import time


driver_path = r"C:\\Program Files (x86)\\chromedriver.exe"

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')

driver= webdriver.Chrome(driver_path, chrome_options = options)

url= "https://healthunlocked.com/"

driver.get(url)

loginpage= driver.find_element_by_id("sitebar-login-button")
loginpage.send_keys(Keys.ENTER)

user_ele = driver.find_element_by_xpath('//*[@id="email"]')
user_ele.send_keys('MyEmail@gmail.com')
user_ele.send_keys(Keys.ENTER)

pass_ele = driver.find_element_by_xpath('//*[@id="password"]')
pass_ele.send_keys('MyPass')
pass_ele.send_keys(Keys.ENTER)


time.sleep(10)

driver.quit()

Tags: pathpyimportsenddriverkeyschromeusers
2条回答

使用选项而不是chrome选项,并设置user_ele

from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument(' ignore-certificate-errors')
options.add_argument(' ignore-ssl-errors')

driver= webdriver.Chrome(driver_path, options = options)

url= "https://healthunlocked.com/"

driver.get(url)

loginpage= driver.find_element_by_id("sitebar-login-button")
loginpage.send_keys(Keys.ENTER)

user_ele = driver.find_element_by_xpath('//*[@id="email"]')
user_ele.send_keys('MyEmail@gmail.com')
user_ele.send_keys(Keys.ENTER)

pass_ele = driver.find_element_by_xpath('//*[@id="password"]')
pass_ele.send_keys('MyPass')
pass_ele.send_keys(Keys.ENTER)

清除占位符,然后发送密钥:

from selenium import webdriver
from selenium.webdriver.common.keys import  Keys
import pandas as pd
import time

options = webdriver.ChromeOptions()
options.add_argument(' ignore-certificate-errors')
options.add_argument(' ignore-ssl-errors')

driver= webdriver.Chrome(options = options)

url= "https://healthunlocked.com/"

driver.get(url)

# closing cookies thing 
driver.find_element_by_id('ccc-notify-accept').click()

loginpage= driver.find_element_by_id("sitebar-login-button").click()

time.sleep(3)

user_ele = driver.find_element_by_id('email')
user_ele.clear()
user_ele.send_keys('MyEmail@gmail.com')

pass_ele = driver.find_element_by_xpath('//*[@id="password"]')
pass_ele.clear()
pass_ele.send_keys('MyPassword')

# submitting
driver.find_element_by_xpath('/html/body/div[3]/div/div[1]/div/div/section/div[1]/form/button').click()
time.sleep(10)

driver.quit()  

如果您只想登录,可以使用请求发送post请求

相关问题 更多 >