我之前的问题是Selenium Python - Access next pages of search results
在为一个关键字成功完成此操作后,我需要从文件中逐行读取这些关键字,并继续搜索。
file1 = open("M:/Users/Cyborg/Desktop/Py/read.txt","r")
driver.switch_to_default_content()
str2 = file1.readline()
inputElement = driver.find_element_by_name("searchText")
inputElement.clear()
inputElement.send_keys(str2)
这将从文件中读取要搜索的关键字,然后在搜索框中输入。
inputElement.submit()
提交查询。它与我之前提出的问题几乎相同,如果str2是静态的,那么一切都很完美,那就是我定义str2='abc'
而不是从文件中读取。但是,只要我尝试从文件中读取并继续搜索,我就会收到此错误
File "M:\Users\Cyborg\Desktop\Py\test.py", line 22, in <module>
inputElement.submit()
.
.
.
.
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: 'Element not found in the cache - perhaps the page has changed since it was looked up' ;
出于某种原因,我收到了这个错误。
非常感谢任何帮助!
答案 0 :(得分:0)
您的问题是,在您执行inputElement.submit()
一次后,该网页很可能会被刷新,此时inputElement
会变得陈旧。
我认为在每个inputElement
之后获取inputElement.submit()
的新参考资料会清除它:
inputElement.submit()
inputElement = driver.find_element_by_name("searchText")