关于使用Selenium和Python登录Gmai的问题

2024-04-27 05:22:44 发布

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

我正试图通过Python上的Selenium登录到我的gmail帐户,问题是:我可以正确输入用户名,但密码部分没有输入任何内容

要放到上下文中,对于Gmail,你必须输入用户名,然后转到后面的密码部分。我尝试了以下解决方案: -在输入username和pword之间刷新页面(这会使您转到其他屏幕) -正在等待密码框出现(未进行任何更改) -试图通过id而不是xpath访问box(不起作用)

下面是我的代码:

from selenium import webdriver
#from selenium.webdriver.support.ui import WebDriverWait
#from selenium.webdriver.support import expected_conditions as EC

keys = {
    'url':'http://www.gmail.com',
    'username':'xxxxxxxxxxxx',
    'pword':'xxxxxxxxxxxx',
    'email':'xxxxxxxxxxxx',
    'title':'xxxxxxxxxxxx',
    'text':'xxxxxxxxxxxxxx'
}

driver = webdriver.Safari()
driver.get(keys['url'])
driver.find_element_by_xpath('//*[@id="identifierId"]').click()
driver.find_element_by_xpath('//*[@id="identifierId"]').send_keys(keys['username'])
driver.find_element_by_xpath('//*[@id="identifierNext"]/content/span').click()

# wait for the password field to be visible
#wait = WebDriverWait(browser, 10)
#passwordElem = wait.until(EC.visibility_of_element_located((By.ID, "Passwd")))
#passwordElem.clear()

driver.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input').send_keys(keys['pword'])
driver.find_element_by_xpath('//*[@id="passwordNext"]/content').click()

注释部分是我试图进行的编辑。你知道吗

任何帮助都将不胜感激。提前谢谢。你知道吗


Tags: fromimportid密码bydriverseleniumusername
1条回答
网友
1楼 · 发布于 2024-04-27 05:22:44

单击“下一步”按钮后添加sleep

....
driver.find_element_by_xpath('//*[@id="identifierNext"]/content/span').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input').send_keys(keys['pword'])
driver.find_element_by_xpath('//*[@id="passwordNext"]/content').click()

或者使用WebDriverWait

driver.find_element_by_xpath('//*[@id="identifierNext"]/content/span').click()

# wait for the password field to be visible
wait = WebDriverWait(driver, 10) # not "browser"
passwordElem = wait.until(EC.visibility_of_element_located((By.NAME, "password"))) # not By.ID
passwordElem.send_keys(keys['pword'])
driver.find_element_by_xpath('//*[@id="passwordNext"]/content').click()

相关问题 更多 >