javascript - 什么是错误 OpenQA.Selenium.WebDriverException:javascript 错误:document.getElementByName 不是函数
问题描述
我在执行以下代码行时出错
driver = new ChromeDriver(@"C:\Users\hp\Documents\Driver");
driver.Navigate().GoToUrl("http://demo.guru99.com/v3/");
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.getElementByName('uid').value ='mngr303517'");
js.ExecuteScript("document.getElementByName('password').value='ujudysY'");
js.ExecuteScript("document.getElementByName('btnLogin').click()");
我在第 3 行得到了错误
document.getElementByName 不是函数(会话信息:chrome=87.0.4280.141)
这是什么原因?
解决方案
JavaScript 方法是 document.getElement s ByName(...) (复数 - 元素不是元素)。
此方法返回元素的集合,而不是单个元素。
js.ExecuteScript("document.getElementsByName('uid')[0].value ='mngr303517'");
请务必[0]
在调用该value
属性之前访问集合的索引。
改用它可能会更干净一些document.querySelector
:
js.ExecuteScript(@"document.querySelector(""[name='uid']"").value ='mngr303517'");
js.ExecuteScript(@"document.querySelector(""[name='password']"").value='ujudysY'");
js.ExecuteScript(@"document.querySelector(""[name='btnLogin']"").click()");
推荐阅读
- javascript - 在 Node.js 中使用 Crypto 从一个流中生成多个哈希值
- shell - 使用 Curl 下拉通话记录数据
- java - Java/Kotlin 泛型列表不兼容的类型与通配符
- sql - 如何在 SQL Server 2016 中创建标识重复变量的变量?
- hazelcast - Hazelcast 中 WAN 复制的性能
- python - 如何打印类中方法的返回值?
- grpc - gRPC grpc-状态:8
- android - 我在运行我的 Android 代码时遇到这些错误
- javascript - 如何重置firebase服务器以允许功能部署?
- html - 带有超链接的 HTML 中的 NSAttributedString