提问人:Akhil Nair 提问时间:2/3/2023 最后编辑:burnsiAkhil Nair 更新时间:2/3/2023 访问量:69
连接到远程调试前端 URL 后,无法使用 selenium 与元素交互
Unable to interact with element using selenium after connecting to remote debugging Frontend URL
问:
使用远程调试后连接到 devtoolsFrontendUrl 后,我无法与 UI 中的元素交互。但是,如果我没有连接到devtoolsFrontendUrl,则不会遇到问题。
我的脚本:
webdriver = require("selenium-webdriver");
const chrome = require("selenium-webdriver/chrome");
let opts = new chrome.Options();
opts.addArguments("remote-debugging-port=9222")
opts.addArguments("headless")
opts.addArguments("remote-debugging-address=0.0.0.0")
opts.addArguments("window-size=1920,1080")
const { Builder, Capabilities } = webdriver;
let capabilities = Capabilities.chrome();
driver = await new Builder()
.usingServer("http://localhost:4444/wd/hub")
.withCapabilities(capabilities)
.setChromeOptions(opts)
.build();
await driver.get("My URL")
之后,我就可以在 chrome 浏览器中访问该网址了localhost:9222/json
我得到的JSON如下:
[ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/5C9612F350A70AF13943240DE0B1EF05",
"id": "5C9612F350A70AF13943240DE0B1EF05",
"title": "title",
"type": "page",
"url": "myURL",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/5C9612F350A70AF13943240DE0B1EF05"
}, {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/FB791E87874704F96453713AB412C02C",
"id": "FB791E87874704F96453713AB412C02C",
"title": "about:blank",
"type": "page",
"url": "about:blank",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/FB791E87874704F96453713AB412C02C"
} ]
然后我连接到 devtools 前端 URL:http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/5C9612F350A70AF13943240DE0B1EF05
连接到上面的 url 后,我得到了我使用 selenium 和 devtools 打开的 URL 的远程显示,但我无法使用以下代码使用 selenium 对元素执行单击:
driver.findElement(webdriver.By.xpath(`//button[contains(text(),'Sign In')]`)).click();
但是如果我没有连接到devtoolsFrontendUrl,它就会起作用。
我尝试了使用傀儡代替硒的替代解决方案,但我仍然面临同样的问题。
答: 暂无答案
评论