我正在自动执行浏览器过程,但是所有人都使用相同的凭据(一次只能有一个用户可以访问门户),因此,每当其他人登录时,当前用户都会自动将网址更改为以下内容: “ http://172.17.3.248:8889/ameyoreports/?acpMode=false#loggedOut”。
在自动脚本运行期间以及检测到注销结束时,是否有任何方法可以不断检查url的更改。
我正在使用python硒网络驱动程序。
答案 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