selenium如何更改输入框的值(输入框有默认值,通过调用JS后重新输入需要的值,再次点击查询,还是查询的默认值)

self.driver.get(“https://hotels.ctrip.com/”)
self.driver.set_window_size(1911, 1040)
self.driver.find_element(By.ID, “hotels-destination”).click()
js = ‘document.getElementById(“hotels-destination”).value=“武汉”’
self.driver.execute_script(js)
time.sleep(3)
self.driver.find_element(By.CSS_SELECTOR, “.search-btn-wrap”).click()

设置为目标值之前,加个等待;因为页面的一些资源还没完全加载,你就设置了它的属性,加载完成后,就会覆盖你设置的信息,所以再次获取的时候,还是默认值

在第三行后面加个time.sleep(3)试试

建议使用clear()方法清除文本框中的内容再send_keys数据,现在的web页面大部分都是DOM驱动的,你的js脚本并不会执行,或者执行并不会改变页面属性

试过clear()后sendkeys(),也加过等待,输入框的值可以输入,但是点击查询后,又恢复成默认值,可能是查询有监听事件吧,不知道怎么处理