node.js - 无法使用硒定位元素
问题描述
嗨,我尝试使用 selenium chromedriver 输入用户名和密码,但它总是让我无法找到元素。我尝试了 id、name、xpath、完整的 xpath,但似乎都不起作用。我正在尝试访问此网站:https ://www.absolutecyclesingapore.com/reserve#/login
const webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
const driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://www.absolutecyclesingapore.com/reserve#/login').then(async function(){
await driver.sleep(5000)
driver.findElement(webdriver.By.name('username')).sendKeys('usertest')
driver.findElement(webdriver.By.name('password')).sendKeys('passwordtest')
})
解决方案
我浏览了你的链接。DOM 中有 iframe,并且 iframe 中存在用户名密码元素。您必须使用 xpath=(//iframe)[1] 切换到 iframe。然后试试你的代码
driver.findElement(webdriver.By.name('username')).sendKeys('usertest')
driver.findElement(webdriver.By.name('password')).sendKeys('passwordtest')
推荐阅读
- vim - 重新分配字符串字符
- android - 显示发布证书指纹仅显示 (SHA-256),不显示 SHA1
- html - 如何在网站/WordPress 中“控制背景元素”?
- sql - 在Oracle中如何清除缺少括号的错误?
- apache-spark - 使用 Livy 作为 OS 用户运行 spark 程序
- python - 如何使用 matplotlib 将每个图形保存在循环中
- r - 如何自定义线图的 24 小时开始时间和结束时间?(例如,从 7:30 开始)
- javascript - 在连接到同一个 Rooter 的 2 个不同程序之间发送/接收数据(没有互联网)(JavaScript 和 Electron)
- c# - 无法将音频文件发送到浏览器进行流式传输;只收到几个字节(内容大小:0)
- c - 我怎样才能为我欠找的最低硬币修复“非无效功能的结束”?