我在Ubuntu14.04中从事Selenium和Firefox的工作,我通过send_keys(Keys)创建了一个新的选项卡。CONTROL 't '),但是一直在第一个选项卡上发出命令,可能是因为我没有正确地关注新选项卡。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
main_window = driver.current_window_handle
driver.get("https://www.google.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("http://www.bing.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("https://github.com/login")
运行此代码时没有错误。
去google.com后,我创建了一个新标签,屏幕在新标签上变成了一个空白页。之后,我编写了driver . switch _ to _ window(main _ window)来关注新选项卡,以确保下一行代码将出现在新选项卡上。但是当执行driver . get(" http://www . bing . com ")时,屏幕返回到google.com所在的第一个选项卡,并将google.com改为bing.com。下一段代码也是如此。创建了另一个新选项卡,但在执行driver . get(" https://github . com/log in ")时返回到第一个选项卡,bing.com变成了github.com/login.
我以为我关注的是当前可见选项卡
main_window=驱动程序。当前窗口句柄;driver.switch_to_window(主窗口),
但这并不奏效。我如何在3个不同的标签页上加载所有3个网页?
规格:
请尝试以下解决方案,如果不是您真正想要的,请告诉我:
driver.get("https://www.google.com")
google_window = driver.current_window_handle # Define main window
driver.execute_script("window.open('http://www.bing.com')") # Open Bing window
bing_window = [window for window in driver.window_handles if window != google_window][0] # Define Bing window
driver.execute_script("window.open('https://github.com/login')") # Open GitHub window
github_window = [window for window in driver.window_handles if window not in [google_window, bing_window]][0] # Define GitHub window
所有3个窗口打开后,您可以简单地导航为:
driver.switch_to_window(bing_window)
...# do something
driver.switch_to_window(google_window)
...# do something
driver.switch_to_window(github_window)
由于Firefox不再支持Control+T选项卡,我开始使用driver.execute_script(“window.open('url','new_window')”) 我正在尝试显示我打开的不同选项卡的标题,并在它们之间切换。对于下面的示例,我期望输出是facebook、google和返回到facebook。现在的输出是facebook、facebook、facebook. 我尝试了从这里
使用Python中的Selenium Webdriver,我可以点击一个按钮打开一个新的浏览器窗口,但是我不知道如何将焦点转移到新窗口上。我在网上搜了个遍,没找到什么有用的。问题是窗口没有标题! 我需要的是新窗口的焦点,这样我就可以截图它的内容。 以下是打开新窗口的按钮周围的代码: 怎么做…?
使用Selenium和python,我可以使用Chrome WebDriver实现以下操作: 但我找不到一个类似的属性为Firefox的webdriver选项。有一个吗?
问题内容: 我仅在Windows计算机上运行Selenium网格,资源使用率很高。 我一直在想将Chrome和Firefox放入docker容器中以提高效率的想法。 我的问题是,在不同平台上的浏览器本身是否存在任何主要区别,即Windows上的Chrome的行为与Linux上的Chrome的行为不同还是它们运行相同的代码并具有相同的行为? 问题答案: Selenium倾向于模拟 用户操作 ,其中包
对不起,我读了几篇文章,但没能找到解决方案。所以,我想做的是在WSL上使用硒和火狐。代码看起来像这样: 我得到的是以下(已知)错误: 这个日志显示: 1603805101772mozrunder::转轮INFO运行命令:"/usr/bin/Firefox""-木偶"-前景"-无远程"-配置文件"/tmp/rust_mozprofilehybl9w"错误:未指定DISPLAY环境变量16038053
我在Windows上使用Python 2.7中的Firefox Webdriver来模拟打开(Ctrl+T)和关闭(Ctrl+W)一个新选项卡。 如何在Mac上实现同样的功能?根据这个注释,我们应该使用打开一个新的选项卡,但是我没有Mac来测试它,那么的等效项呢? 谢了!