由python webdriver在chrome浏览器中的selenium新选项卡

时间:2015-07-22 09:37:47

标签: python google-chrome selenium

我无法在Chrome中打开新标签页。我的要求是打开一个新选项卡执行某些操作然后关闭此新选项卡并返回旧选项卡。 下面的python代码在Firefox中有效但在Chrome中无效。有人可以帮帮我吗?

ActionChains(driver).key_down(Keys.CONTROL,body).send_keys('t').key_up(Keys.CONTROL).perform()

2 个答案:

答案 0 :(得分:4)

猜猜这会有所帮助:

from selenium import webdriver
driver = webdriver.Chrome()
driver.execute_script("window.open('','_blank');")

这段代码应该启动新的Chrome浏览器会话并在新标签页中打开空白页

使用driver.execute_script("window.open('URL');")打开包含所需网址的新标签页

答案 1 :(得分:3)

我无法通过driver.execute_script("window.open('URL');")使用所需的URL打开新标签。

因此我改变了主意。

如果我们考虑将当前窗口切换到新窗口,则任何链接都将在新选项卡上开始。然后,我将通过driver.get(URL)打开新标签。我唯一需要使用的方法是driver.switch_to_window(driver.window_handles[1])

当我们关闭新标签页时,只需将窗口切换到主窗口即可:driver.switch_to_window(driver.window_handles[0])driver.switch_to_window(main_window)

顺便说一句,如果我们在关闭新标签后不切换到主窗口,则会引发错误。

from selenium import webdriver


driver = webdriver.Chrome()
driver.get("http://www.google.com/")

# save main_window
main_window = driver.current_window_handle

# obtain url of gmail on the home page of Google
addr = driver.find_element_by_xpath('//*[@id="gbw"]/div/div/div[1]/div[1]/a').get_attribute("href")

# open new blank tab
driver.execute_script("window.open();")

# switch to the new window which is second in window_handles array
driver.switch_to_window(driver.window_handles[1])

# open successfully and close
driver.get(addr)
driver.close()

# back to the main window
driver.switch_to_window(main_window)
driver.get(addr)