我使用与Selenium一起使用HTTP基本身份验证的网页的URL启动Firefox。登录后,我只看到从我无法访问的数据库中读取的一行文本。所以我检索那行文本并保存到文本文件中。
我需要使用Selenium刷新页面,以便从页面上显示的数据库中获取下一个文本行,然后再次保存。这一切我做到了。但是在我读完每一行直到数据库结束之后,我不知道如何刷新页面(循环刷新过程)。这是我的代码(仅对2个第一行有效):
from selenium import webdriver
profile=webdriver.FirefoxProfile()
profile.set_preference('network.http.phishy-userpass-length','255')
driver=webdriver.Firefox(firefox_profile=profile)
driver.get("https://my_username:my_password@my_websitew.com/page.php")
r=driver.find_element_by_xpath("html").text
with open('urls.txt','a') as f:
f.write(r)
如何解决我的问题?
答案 0 :(得分:1)
将逻辑放入while
循环并检查最新匹配后页面是否已更改:
latest_content = None
while True:
driver.refresh()
new_content = driver.find_element_by_xpath("html").text
if new_content != latest_content:
with open('urls.txt', 'a') as f:
f.write(new_content)
latest_content = new_content