【问题标题】:how to detect unexpected url change python webdriver selenium?如何检测意外的 url 更改 python webdriver selenium?
【发布时间】:2018-07-24 23:15:21
【问题描述】:

我正在自动化浏览器进程,但所有人都使用相同的凭据(一次只有一个用户可以访问门户),因此每当其他人登录时,当前用户会自动被踢出,并将 url 更改为“http://172.17.3.248:8889/ameyoreports/?acpMode=false#loggedOut”。

有没有办法在我的自动化脚本运行时不断检查 url 的变化,当检测到注销时结束脚本。

我正在使用 python selenium webdriver。

【问题讨论】:

    标签: python selenium


    【解决方案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

    【讨论】:

      【解决方案2】:

      嘿,有与 selenium 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-31
        • 1970-01-01
        • 2014-09-23
        • 2014-10-21
        • 2014-09-16
        • 1970-01-01
        • 2016-10-07
        • 1970-01-01
        相关资源
        最近更新 更多