我在执行以下代码行时出错
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)
这是什么原因?
答案 0 :(得分:2)
JavaScript 方法是 document.getElementsByName(...)(复数 - 元素不是元素)。
此方法返回元素的集合,而不是单个元素。
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()");