由于Firefox不再支持Control+T选项卡,我开始使用driver.execute_script(“window.open('url','new_window')”)
我正在尝试显示我打开的不同选项卡的标题,并在它们之间切换。对于下面的示例,我期望输出是facebook、google和返回到facebook。现在的输出是facebook、facebook、facebook.
我尝试了从这里的答案,但它也没有工作:切换回父选项卡使用selenium webdriver
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.facebook.com/")
print(driver.title)
driver.execute_script("window.open('http://google.com', 'new_window')")
print(driver.title)
driver.switch_to.window(driver.window_handles[0])
print(driver.title)
更新了:我试了下面的代码,它仍然没有工作。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.facebook.com/")
print(driver.title)
window_before = driver.window_handles[0]
driver.execute_script("window.open('http://google.com', 'new_window')")
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
print(driver.title)
关于选项卡/窗口切换/处理的几句话:
>
始终跟踪父窗口句柄,以便以后根据您的使用情况,如果需要,可以返回。
在选项卡/窗口之间切换之前,始终使用带有expected_conditions的WebDriverWait作为number_of_windows_to_be(num_windows)
。
下面是您自己的代码,上面提到了一些小调整:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox(executable_path=r'C:\WebDrivers\geckodriver.exe')
driver.get("http://www.facebook.com/")
print("Initial Page Title is: %s" %driver.title)
windows_before = driver.current_window_handle
driver.execute_script("window.open('http://google.com')")
WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2))
windows_after = driver.window_handles
new_window = [x for x in windows_after if x != windows_before][0]
driver.switch_to.window(new_window)
WebDriverWait(driver, 20).until(EC.title_contains("G"))
print("Page Title after first window switching is: %s" %driver.title)
driver.close()
driver.switch_to.window(windows_before)
WebDriverWait(driver, 20).until(EC.title_contains("F"))
print("Page Title after second window switching is: %s" %driver.title)
driver.quit()
控制台输出:
Initial Page Title is: Facebook – log in or sign up
Page Title after first window switching is: Google
Page Title after second window switching is: Facebook – log in or sign up
因此,我有一个,我想冲浪到新选项卡中,链接是不可点击的,所以当我点击这个链接时,什么也不会发生,这将不起作用(甚至不手动): 这是我的web URL:
下面的示例有一个名为London的选项卡,其中有另一个名为Paris的选项卡。我怎么能在伦敦不结帐的情况下打开巴黎? 该示例直接来自W3SCHOOL,但经过了一些修改以适应我的用例。 null null 我相信问题是,“活跃”班从伦敦消失,因此,一旦我向巴黎施压,就会关闭。但我不擅长jQuery。 我想它可以很容易地在W3接口上测试:https://www.w3schools.com/howto/
我在Windows上使用Python 2.7中的Firefox Webdriver来模拟打开(Ctrl+T)和关闭(Ctrl+W)一个新选项卡。 如何在Mac上实现同样的功能?根据这个注释,我们应该使用打开一个新的选项卡,但是我没有Mac来测试它,那么的等效项呢? 谢了!
问题内容: 我正在使用Python。我正在尝试在Chrome上打开两个标签,每个标签都指向不同的网站。这是我的代码: 当我运行它时,第一个标签页打开到reddit.com,然后另一个标签页打开到我的默认网页,然后在原始标签页中打开bing.com。我希望第一个选项卡转到Reddit,第二个选项卡转到bing,但仅作用于第一个选项卡。 问题答案: 像这样为python尝试:
所以我试图在我的WebDriver中打开新的标签页。我想这样做,因为打开一个新的WebDriver为每个网站使用PhantomJS约3.5秒,我想要更快... 我使用的是一个多进程python脚本,我希望从每个页面中获取一些元素,因此工作流如下所示:
我在Ubuntu14.04中从事Selenium和Firefox的工作,我通过send_keys(Keys)创建了一个新的选项卡。CONTROL 't '),但是一直在第一个选项卡上发出命令,可能是因为我没有正确地关注新选项卡。 运行此代码时没有错误。 去google.com后,我创建了一个新标签,屏幕在新标签上变成了一个空白页。之后,我编写了driver . switch _ to _ wind