Web驱动程序(Selenium)找不到元素

3lxsmp7m  于 2022-11-24  发布在  其他
关注(0)|答案(2)|浏览(115)

`

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from time import sleep
import os

login_page = "https://fap.fpt.edu.vn/Default.aspx"
# page = "https://fap.fpt.edu.vn/Report/ScheduleOfWeek.aspx"

email = ""
password = ""

options = Options()
options.add_argument("--window-size=1920,1080")
options.binary_location = "C:\Program Files\Google\Chrome\Application\chrome.exe"
driver = webdriver.Chrome(options = options)
driver.get(login_page)

login1 = driver.find_element("xpath","//div[@class='abcRioButtonContentWrapper']").click()

driver.find_element(By.NAME, "identifier").send_keys(email)
sleep(3)
driver.find_element(By.ID, "identifierNext").click()
sleep(2)
driver.find_element(By.NAME, "password").send_keys(password)
sleep(2)
driver.find_element(By.ID, "passwordNext").click()

sleep(999999)

`
我相信我选择了正确的By.NAME(“标识符”),但代码仍然不工作,返回消息没有这样的元素。
我尝试更改语法,使用xpath将By.NAME更改为By.ID,但仍然不起作用

fxnxkyjh

fxnxkyjh1#

不,这里不要使用jsname的名称,因为它们会被随机数据填充。
只需通过文本找到您的Google帐户名称或电子邮件地址,然后单击即可:

userAccount = driver.find_element_by_xpath("//*[text()='YourGoogleAccountName']")
userAccount.click()
oogrdqng

oogrdqng2#

Google登录页面会在一个新窗口中打开。因此,在与该窗口交互之前,您需要切换到该窗口。因此,您需要使用以下代码(第一行和最后一行来自您的代码,中间是您需要添加的部分):

login1 = driver.find_element("xpath","//div[@class='abcRioButtonContentWrapper']").click()

windows = driver.window_handles
driver.switch_to.window(windows[1])

driver.find_element(By.NAME, "identifier").send_keys(email)

登录完成后,您需要切换回主窗口。为此,您可以使用以下代码:

driver.switch_to.window(windows[0])

然后处理页面内容

相关问题