如何检测到意外的URL更改python webdriver selenium?

时间:2018-07-24 05:53:23

标签: python selenium

我正在自动执行浏览器过程,但是所有人都使用相同的凭据(一次只能有一个用户可以访问门户),因此,每当其他人登录时,当前用户都会自动将网址更改为以下内容: “ http://172.17.3.248:8889/ameyoreports/?acpMode=false#loggedOut”。

在自动脚本运行期间以及检测到注销结束时,是否有任何方法可以不断检查url的更改。

我正在使用python硒网络驱动程序。

2 个答案:

答案 0 :(得分:1)

在Java中,例如,如果您实现它,我们可以从EventLister https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/events/WebDriverEventListener.html获得帮助

public class Test2 implements WebDriverEventListener{

@Override
public void beforeFindBy(By arg0, WebElement arg1, WebDriver driver) {
    if(driver.getCurrentUrl().equals("http://172.17.3.248:8889/ameyoreports/?acpMode=false#loggedOut")==true) {
        //do want you want.
    }
}

在执行任何操作之前,我们必须使用与下面相同的方法对URL进行交叉检查(按照上面的示例,在查找元素之前对URL进行交叉检查)

    FirefoxDriver driver = new FirefoxDriver();
     EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);

    EventHandler handler = new EventHandler();
    eventDriver.register(handler);
    eventDriver.get("url");

在Java中,它http://toolsqa.com/selenium-webdriver/event-listener/对于python http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.abstract_event_listener很有帮助

答案 1 :(得分:0)

嘿,有与硒webdriver对象关联的current_url属性,您将能够使用webdriver.current_url来获取更改的URL。

对此进行检查,您可以随时中断脚本。

您可以使用以下代码对其进行测试

#using chrome webdriver
from selenium.webdriver.chrome.options import Options


browser = Options()
instance = webdriver.Chrome(webdriver_path, options=browser)
instance.get(url)
instance.current_url <<<<<<< this will give the current url opened in browser

# manually enter another url in the browser then again check
instance.current_url