如何让 selenium 在通过 IEDriverServer 和 IE 从登陆页面后加载的实际网站获取内容之前等待

How to make selenium wait before getting contents from the actual website which loads after the landing page through IEDriverServer and IE

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 通过其 ID 查找元素,因为根据公司规定我只能使用 Internet Explorer。

我的问题如下: 在 driver.get(testurl) 上,selenium 加载页面,但 IE 首先启动 IEDriver 登录页面。 只有在那之后,它才会加载请求的 url.

这里的问题是 Selenium 将 IE 驱动程序登录页面识别为要加载的 url,因此忽略了我要搜索的页面,该页面随后被加载。

有人知道如何解决这个问题吗?

当您使用 SeleniumIEDriverServerInternet Explorer 时,而 IEDriverServer 启动一个新的 IE 浏览器 会话,IE 浏览器 首先启动 IEDriver 登陆页面 然后加载请求的 url.

Incase SeleniumIEDriverServer 的登录页面识别为要加载的 url,在这种情况下解决方案将导致 WebDriverWait Page Title 等同于 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")