E selenium.common.exceptions.JavascriptException: Message: javascript error: document.getElementsByName(...).removeAttribute is not a function E (Session info: chrome=113.0.5672.127)
时间: 2024-02-06 17:11:56 浏览: 165
这个错误是因为 `getElementsByName` 方法返回的是一个 NodeList 对象,而 `removeAttribute` 方法是针对单个 Element 对象的。
你需要修改 JavaScript 代码,将 `getElementsByName` 方法返回的 NodeList 对象转换为单个 Element 对象,然后才能调用 `removeAttribute` 方法。例如:
```
birthday = "birthdate"
js = f'document.getElementsByName("{birthday}")[0].removeAttribute("readonly")'
```
这样就可以正确地移除元素的 `readonly` 属性了。
相关问题
selenium.common.exceptions.JavascriptException: Message: javascript error: arguments[0].click is not a function
这个错误通常是由于使用了Selenium的click()方法,但是元素并不支持该方法。有可能是元素不可见、不可点击,或者是元素被覆盖等原因导致的。你可以尝试使用其他方法来模拟点击,比如使用JavaScript来模拟点击,或者使用ActionChains类来模拟鼠标操作等。如果你能提供更多的上下文信息,我可以提供更具体的解决方案。
> raise exception_class(message, screen, stacktrace) E selenium.common.exceptions.JavascriptException: Message: javascript error: document.getElementByName is not a function E (Session info: chrome=113.0.5672.127)
这个错误是因为 JavaScript 中没有 `getElementByName` 方法。正确的方法是使用 `getElementsByName` (注意 `Elements` 是复数)。
你需要修改代码中的 JavaScript 代码,将 `getElementByName` 改为 `getElementsByName`。例如:
```
birthday = "birthdate"
js = f'document.getElementsByName("{birthday}")[0].removeAttribute("readonly")'
```
这样就可以正确地移除元素的 `readonly` 属性了。
阅读全文