python - Selenium 找不到元素,即使它们存在
问题描述
我正在创建一个简单的 selenium 脚本来输入用户名和密码以登录。这是我的代码:
driver = webdriver.Chrome(executable_path=r'C:\\Users\\Aspire5\\Downloads\\chromedriver_win32\\chromedriver.exe')
driver.get("https://ven02207.service-now.com/")
username = driver.find_element_by_xpath('//*[@id="user_name"]')
username.send_keys('username')
password = driver.find_element_by_xpath('//*[@id="user_password"]')
password.send_keys('this_is_password')
但我得到以下异常:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="user_name"]"}
我正在从代码访问这个网站。我在代码中提供的 XPath 存在于页面上,但它仍然返回No Such Element Exception
.
解决方案
你需要先切换到框架..因为input
标签在框架内
frame = driver.find_element_by_xpath('//*[@id="gsft_main"]')
driver.switch_to.frame(frame)
driver.find_element_by_id('user_name').send_keys('sarthak')
driver.find_element_by_id('user_password').send_keys('sarthak')
推荐阅读
- java - RestAssured - 如何从 json 响应中读取数组元素
- mysql - FDQuery和OnCalcFields,获取上一行
- java - 如何检查哪个线程当前正在锁定静态变量
- python-2.7 - 目录和文件的 Python 递归到 5 个级别
- java - 如何通过单击另一个类的按钮来执行该方法?
- c# - 使用 XlLineStyle 作为对象 C#
- datetime - Elasticsearch如何在日期时间字段中按时间搜索
- flutter - 在 pubspec.yaml 中更改应用名称会导致导入错误
- python - 在python中的两个函数之间共享数据
- amazon-web-services - AWS 安装代码部署代理失败 - 我错过了什么