#python #selenium #selenium-webdriver
Вопрос:
Я использую selenium-wire
и requests
для печати сетевых URL-адресов, кодов состояния и некоторых атрибутов заголовка. Я хочу, чтобы селен подождал, пока не будут напечатаны все URL-адреса, прежде чем переходить на следующую страницу.
Как мне добавить ожидание того же самого?
Мой код:
from seleniumwire import webdriver
import pytest
from selenium.webdriver.chrome.options import Options
import time
class Test_main():
@pytest.fixture()
def test_setup(self):
# initiating browser
chrome_options = Options()
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--headless')
self.driver = webdriver.Chrome(executable_path=r"D:/Python/Sel_python/drivers/chromedriver v86/chromedriver.exe", options=chrome_options)
# terminate script
yield
self.driver.close()
self.driver.quit()
print("Test completed")
def testcase_01(self, test_setup):
self.driver.get("https://lifesciences.cactusglobal.com/")
title = self.driver.title
print("Page title: " title)
time.sleep(3)
self.driver.find_element_by_xpath("//a[contains(text(),'here')]").click()
self.driver.find_element_by_xpath("//a[contains(text(), 'Allow all')]").click()
time.sleep(5)
for request in self.driver.requests:
if request.response:
print(
request.url,
request.response.status_code,
request.response.headers['Content-Type'],
request.response.headers['set-cookie']
)
self.driver.find_element_by_xpath("//a[contains(text(),'next')]").click()
Я попытался добавить time.sleep
, но это останавливает весь драйвер, а когда он возобновляется, переходит к следующему URL-адресу.
Есть ли какой-нибудь способ справиться с этим с помощью webdriverwaits
?
Комментарии:
1. Знаете ли вы количество / количество ожидаемых запросов?
2. @Пророк: Нет. Его случайное количество. Иногда возвращает 14 URL-адресов, иногда больше.