无法打开在硒的webdriver一个NEWTAB在Mac OS X
问题描述:
我应该能够使用的代码无法打开在硒的webdriver一个NEWTAB在Mac OS X
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://*.com/")
body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.COMMAND + 't')
硒打开一个新的选项卡蟒蛇却没有新的标签页中打开,并出现任何错误消息(http://*.com/确实加载)。
请注意,我用的Keys.COMMAND + 't'
因为我运行在OS X上
的代码,我不知道是什么原因造成的问题,因为这样one的帖子,指出我的代码应该工作。
更新以包括答案
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://*.com/")
current_tab = driver.current_window_handle
driver.execute_script('window.open();')
new_tab = [tab for tab in driver.window_handles if tab != current_tab][0]
driver.switch_to.window(new_tab)
driver.get("http://github.com")
inputElement = driver.find_element_by_id("user[login]")
inputElement.send_keys('1')
current_tab = driver.current_window_handle
driver.execute_script('window.open();')
new_tab = [tab for tab in driver.window_handles if tab != current_tab][0]
driver.switch_to.window(new_tab)
driver.get("http://github.com")
inputElement = driver.find_element_by_id("user[email]")
inputElement.send_keys('2')
答
下面的代码试图打开新的标签页,并切换到它:
driver = webdriver.Firefox()
driver.get("http://*.com/")
current_tab = driver.current_window_handle
driver.execute_script('window.open("http://github.com");')
new_tab = [tab for tab in driver.window_handles if tab != current_tab][0]
driver.switch_to.window(new_tab)
inputElement = driver.find_element_by_id("user[login]")
inputElement.send_keys('1')
driver.execute_script('window.open("http://github.com");')
third_tab = [tab for tab in driver.window_handles if tab not in (current_tab, new_tab)][0]
driver.switch_to.window(third_tab)
inputElement = driver.find_element_by_id("user[email]")
inputElement.send_keys('2')
您可以使用driver.close()
关闭新的标签和driver.switch_to.window(current_tab)
切换回初始选项卡
另请注意,您可以通过页面URL
y OU要在新标签作为参数就像打开window.open()
:
driver.execute_script('window.open("https://google.com");')
尝试'driver.execute_script( '的window.open();')',而不是 – Andersson
@Andersson这工作....我不知道为什么。你知道如何切换到新的打开标签。如果我能弄清楚,我会考虑回答这个问题。 – AzJ