使用selenium在浏览器中更改网址时是否可以捕获事件?
以下是我的情景:
final.test.com / 的页面已加载,在此结束时,selenium使我能够搜索元素等等...
我希望每次重定向时能够拦截(及时发生)。
之后,我仍然需要做一些其他更适合硒的步骤:
以下是我试图拦截第一次重定向的示例:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
def url_contains(url):
def check_contains_url(driver):
return (url in driver.current_url)
return check_contains_url
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX)
driver.get("http://test.com/")
try:
url = "redirect-one.test.com"
first_redirect = WebDriverWait(driver, 20).until(url_contains(url))
print("found first redirect")
finally:
print("move on to the next redirect...."
使用硒甚至可以吗?
我无法改变网站的行为以及它的构建原因是因为我无法绕过的SSO机制。
我意识到我指定了python,但我对其他语言的工具持开放态度。
答案 0 :(得分:0)
Selenium不是这个的工具。浏览器遇到的所有重定向都由浏览器以Selenium不允许您检查的方式处理。
您可以使用urllib2
执行检查,或者如果您更喜欢理智的界面,请使用requests
。