Как заставить селен ждать, прежде чем получать контент с реального сайта, который загружается после целевой страницы через IEDriverServer и IE - PullRequest
0 голосов
/ 23 ноября 2018
driver = webdriver.Ie("C:\\IEDriverServer.exe")
driver.get(testurl)
driver.refresh()
time.sleep(5)
data = driver.find_element_by_id("__content0-value-scr")

Поэтому я пытаюсь найти элемент по его идентификатору, используя Selenium (Python) и Internet Explorer, потому что я ограничен Internet Explorer из-за правил компании.

Моя проблема заключается в том, чтоследует: на driver.get(testurl) селен загружает страницу, но IE сначала запускается с целевой страницы IEDriver.Только после этого он загружает запрошенный URL.

Проблема здесь в том, что Selenium распознает целевую страницу драйвера IE в качестве URL-адреса для загрузки и поэтому игнорирует страницу, на которой я хочу искать, которая загружается после этого..

У кого-нибудь есть идеи, как это обойти?

1 Ответ

0 голосов
/ 23 ноября 2018

Когда вы используете Selenium , IEDriverServer и Internet Explorer , в то время как IEDriverServer запускает новый IE Browser сеанс, IE Browser сначала запускается с целевой страницы IEDriver , а затем загружает запрошенный URL.

Incase Selenium распознает Целевая страница IEDriverServer в качестве URL-адреса для загрузки, в этом случае решение состоит в том, чтобы заставить WebDriverWait для Page Title быть эквивалентным фактическому название страницы из AUT (тестируемого приложения) .

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    testurl = "https://www.facebook.com/" # replace with the url of the AUT
    driver = webdriver.Ie(executable_path=r'C:\path\to\IEDriverServer.exe')
    driver.get(testurl)
    WebDriverWait(driver, 10).until(EC.title_contains("Facebook")) # # replace with the title of the AUT
    data = driver.find_element_by_id("__content0-value-scr")
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...