如何让 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,因此忽略了我要搜索的页面,该页面随后被加载。
有人知道如何解决这个问题吗?
当您使用 Selenium、IEDriverServer 和 Internet Explorer 时,而 IEDriverServer 启动一个新的 IE 浏览器 会话,IE 浏览器 首先启动 IEDriver 登陆页面 然后加载请求的 url.
Incase Selenium 将 IEDriverServer 的登录页面识别为要加载的 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")
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,因此忽略了我要搜索的页面,该页面随后被加载。
有人知道如何解决这个问题吗?
当您使用 Selenium、IEDriverServer 和 Internet Explorer 时,而 IEDriverServer 启动一个新的 IE 浏览器 会话,IE 浏览器 首先启动 IEDriver 登陆页面 然后加载请求的 url.
Incase Selenium 将 IEDriverServer 的登录页面识别为要加载的 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")