Асинхронное обновление с помощью Selenium + Python - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время я работаю над проектом, в котором мне нужно, чтобы 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_keys F5 (асинхронный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...