在OS X中使用Selenium WebDriver打开和关闭新选项卡

时间:2014-09-20 18:23:04

标签: python macos selenium

我在Windows上的Python 2.7中使用Firefox Webdriver来模拟打开( Ctrl + t )和关闭( Ctrl + w )新标签。

这是我的代码:

from selenium import webdriver  
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()
browser.get('https://www.google.com')
main_window = browser.current_window_handle
# open new tab
browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
browser.get('https://www.yahoo.com')

# close tab
browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'w')

如何在Mac上实现相同功能? 根据{{​​3}},我应该使用browser.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')打开一个新标签,但我没有Mac来测试它以及相当于Ctrl-w的内容?

谢谢!

5 个答案:

答案 0 :(得分:5)

没有比运行JavaScript更简单,更清晰的了。

打开新标签: driver.execute_script("window.open('');")

答案 1 :(得分:4)

打开一个新标签:

browser.get('http://www.google.com')

关闭标签:

browser.close()

切换到标签:

browser.swith_to_window(window_name)

答案 2 :(得分:1)

打开新标签:

browser.execute_script("window.open('"+your url+"', '_blank')")

切换到新标签:

browser.switch_to.window(windows[1])

答案 3 :(得分:1)

只是为了仍然好奇的人将上面的答案结合起来。以下内容基于Python 2.7和Chrome中的驱动程序。

按以下方式打开新标签:driver.execute_script("window.open("+URL+", '__blank__');") 其中URL是一个字符串,例如" http://www.google.com"。

关闭标签: driver.close() [注意,当您只打开一个标签时,这也会加倍driver.quit()

在标签之间导航:driver.switch_to_window(driver.window_handles[0])  和driver.switch_to_window(driver.window_handles[1])

答案 4 :(得分:1)

您可以选择要关闭的窗口:

window_name = browser.window_handles[0]

切换窗口:

browser.switch_to.window(window_name=window_name)

然后将其关闭:

browser.close()