氡同学 2021-05-02 12:08 采纳率: 100%
浏览 138
已采纳

用selenium模拟登录,网页中能找到id为Username的input标签,为什么提示无法找到?

代码如下:
from selenium import webdriver
import time
import json

user="xxx"
password="xxxxx"
driver = webdriver.Chrome()
driver.get('http://61.144.253.234:54040/szwsbsdt.html?ReturnUrl=%2f')
time.sleep(3)
driver.find_element_by_xpath("//*[@onclick]").click()
print("正在输入用户名和密码")
#清空登录框
driver.find_elements_by_xpath("//input").clear()
#自动填入登录用户名
driver.find_element_by_xpath("//input[@id='UserName']").send_keys(user)

错误提示:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@id='UserName']"}<br />   (Session info: chrome=90.0.4430.93)

网页源码如下:

  • 写回答

5条回答 默认 最新

  • CSDN专家-HGJ 2021-05-02 15:10
    关注

    通过多种方式进行尝试:

    1.在第15行加入 ,driver.implicitly_wait(10),设置等待时间。

    2.在定义driver时加入options.add_argument("start-maximized"),最大化浏览器启动窗口。

    3.看这个输入窗口是不是在一个iframe中,如果是的话,要先用driver.switch_to.frame(...),,然后再进行输入操作。

    4.根据页面加载情况,用WebDriverWait,等页面加载后获取节点。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?