每次处理完一些数据后如何循环刷新网页?

时间:2014-08-01 15:26:46

标签: firefox selenium python-3.x

我使用与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)

如何解决我的问题?

1 个答案:

答案 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