self.driver.execute_script("arguments[0].removeAttribute('readonly')",Add_regular_quotation. LOC_Frequency.value) 报错:E selenium.common.exceptions.JavascriptException: Message: javascript error: arguments[0].removeAttribute is not a function E (Session info: chrome=113.0.5672.127)如何修改
时间: 2024-02-13 12:07:56 浏览: 253
这个错误通常是因为`arguments[0]`传递给`removeAttribute`方法的参数是一个不支持`removeAttribute`方法的对象。在这种情况下,很可能是因为`Add_regular_quotation.LOC_Frequency.value`返回的是一个字符串而不是一个DOM元素。因此,您需要使用`find_element_by_xpath`或`find_element_by_id`等方法来获取该元素,然后将其传递给`execute_script`方法。例如:
```python
element = self.driver.find_element_by_id('LOC_Frequency') # 或者使用XPath来获取
self.driver.execute_script("arguments[0].removeAttribute('readonly')", element)
```
在这里,我们使用`find_element_by_id`方法来获取具有`id`属性为`LOC_Frequency`的元素。然后,我们将该元素传递给`execute_script`方法。这样,您就可以成功执行`removeAttribute`方法了。
相关问题
> self.driver.execute_script("arguments[0].removeAttribute('onclick')",Add_regular_quotation.LOC_Quote_Date[0]) E TypeError: 'Add_regular_quotation' object is not subscriptable
这个错误通常表示您正在尝试对一个不支持下标操作的对象进行下标操作。在您的代码中,`Add_regular_quotation.LOC_Quote_Date` 很可能是一个对象,而不是一个列表或元组。因此,您不能使用下标来访问其中的元素。要解决这个问题,您需要检查 `Add_regular_quotation.LOC_Quote_Date` 的类型,并确保它是一个可迭代对象,例如列表或元组。如果 `Add_regular_quotation.LOC_Quote_Date` 是一个对象,并且您需要访问其中的某个属性或方法,则应该使用点号语法来访问它们,而不是使用下标。例如,如果要访问 `Add_regular_quotation` 对象的 `LOC_Quote_Date` 属性中的第一个元素,则可以使用以下代码:
```
first_element = Add_regular_quotation.LOC_Quote_Date[0].some_property
```
这里的 `some_property` 是 `LOC_Quote_Date` 中第一个元素的某个属性或方法的名称。
def add_shopping(self): self.get(User_shopping_process.URL_shopping.value) self.click(User_shopping_process.LOC_搜索框) self.send_keys(User_shopping_process.LOC_搜索框,'直磨机') self.click(User_shopping_process.LOC_搜索按钮) hand = self.get_handles() self.click(User_shopping_process.LOC_商品框) self.switch_window(hand) self.click(User_shopping_process.LOC_型号) > self.execute_script("arguments[0].removeAttribute('readonly')", User_shopping_process.LOC_数量) E TypeError: User_shopping.execute_script() takes 2 positional arguments but 3 were given
这个错误提示是因为在调用 `execute_script` 方法时传入了 3 个参数,但该方法只接受 2 个参数。可以尝试修改代码如下:
```
def add_shopping(self):
self.get(User_shopping_process.URL_shopping.value)
self.click(User_shopping_process.LOC_搜索框)
self.send_keys(User_shopping_process.LOC_搜索框,'直磨机')
self.click(User_shopping_process.LOC_搜索按钮)
hand = self.get_handles()
self.click(User_shopping_process.LOC_商品框)
self.switch_window(hand)
self.execute_script("arguments[0].removeAttribute('readonly')", User_shopping_process.LOC_数量)
self.click(User_shopping_process.LOC_型号)
```
这样就可以避免传入多余的参数,执行脚本时也不会出现错误了。
阅读全文