使用selenium Java(Mac OSX)将Firefox浏览器置于前端
我正在使用三个火狐驱动程序实例进行自动化。我需要将当前活动的firefox浏览器放在前面,因为我正在使用一些机器人类进行一些操作。 我在mac(同样的操作)中尝试了谷歌浏览器的java脚本警报,并且工作正常。 在windows中使用user32 lib。 在firefox mac的情况下,它在后台显示警报,但网页没有出现在前面。
((JavascriptExecutor)this.webDriver).executeScript("alert('Test')"); this.webDriver.switchTo().alert().accept();
上面的代码我用于Mac中的chrome。 相同的代码正在工作并显示firefox的警报,但窗口没有出现在前面。
请建议是否有任何其他方法在Firefox中执行相同的操作。
首先将窗口句柄存储在变量中,然后使用它稍后返回窗口。
//Store the current window handle String currentWindowHandle = this.webDriver.getWindowHandle(); //run your javascript and alert code ((JavascriptExecutor)this.webDriver).executeScript("alert('Test')"); this.webDriver.switchTo().alert().accept(); //Switch back to to the window using the handle saved earlier this.webDriver.switchTo().window(currentWindowHandle);
此外,您可以尝试在切换到窗口后最大化窗口,这也应该激活窗口。
this.webDriver.manage().window().maximize();
尝试使用窗口名称切换:
driver.switchTo().window("windowName");
或者,您可以将“窗口句柄”传递给switchTo().window()
方法。 知道这一点,就可以迭代每个打开的窗口,如下所示:
for (String handle : driver.getWindowHandles()) { driver.switchTo().window(handle); }
基于Selenium文档: http : //docs.seleniumhq.org/docs/03_webdriver.jsp
如其他主题中所述,您可以使用
driver.manage().window().setPosition(new Point(-2000, 0));
太。
# notifications for selenium chrome_options = webdriver.ChromeOptions() prefs = {"profile.default_content_setting_values.notifications": 2} chrome_options.add_experimental_option("prefs", prefs) current_path = os.getcwd() # current working path chrome_path = os.path.join(current_path, 'chromedriver') browser = webdriver.Chrome(executable_path=chrome_path, chrome_options=chrome_options) browser.switch_to.window(browser.current_window_handle) browser.implicitly_wait(30) browser.maximize_window() browser.get("http://facebook.com")
- 使用selenium java在firefox gecko驱动程序中自动下载pdf
- 使用Selenium WebDriver未检测到Firefox警报框
- Firefox selenium webdriver提供“不安全连接”
- 通过selenium在firefox中打开私有模式
- “安全设置阻止的应用程序”阻止在Linux上使用oracle SE 7更新51运行的applet
- 如何使用Selenium(Java)在浏览器中禁用JavaScript?
- 像Firefox一样使用标题制作JPanel边框
- 在Java Swing中嵌入Firefox浏览器
- Selenium 3.0 Firefx驱动程序因org.openqa.selenium.SessionNotCreatedException而失败:无法创建新的远程会话