3

我目前正在做一个项目,我需要 Selenium 在准确的时间刷新两个选项卡,我不想等待网站加载。我尝试了多个帖子中描述的每种方法,但仍然没有正确。下面的代码段没有任何结果,其他方法(如 browser.refresh() 方法)似乎是同步的。浏览器。Execute_Script("location.reload();") 似乎对于同步与否也非常不稳定。目标是重新加载多个选项卡,然后确定按钮是否存在,如果存在,它将被单击。

import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
import datetime

browser.get('https://google.com')
time.sleep(10)
browser.find_element_by_css_selector("body").send_keys(Keys.F5)

我也考虑过使用类似的东西,直接在浏览器中执行。但这似乎是不可能的,是吗?

function ready(callback){
        // in case the document is already rendered
        if (document.readyState!='loading') callback();
        // modern browsers
        else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback);
        // IE <= 8
        else document.attachEvent('onreadystatechange', function(){
            if (document.readyState=='complete') callback();
        });
    }

ready(function(){
    console.log("DOM fully loaded and parsed");
    var result = document.evaluate("//*[text()='5544']/../../td[@class='action']/form/input[@type='submit' and not(@disabled)]", document, null, XPathResult.ANY_TYPE, null);
    result.click();
});

更新:我发现:

browser.get('https://google.com')
time.sleep(5)
username = browser.find_element_by_xpath("//input[@type='text']")
username.click()
username.clear()
username.send_keys(Keys.Enter)

工作得很好。但是 Keys.F5 并没有刷新页面......这似乎是一个错误?我的问题的主要部分是我想知道这个send_keysF5 操作(异步)的解决方法。

4

0 回答 0