首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用selenium webdriver切换回父选项卡

使用selenium webdriver切换回父选项卡
EN

Stack Overflow用户
提问于 2014-02-19 20:19:32
回答 4查看 9.8K关注 0票数 1

我写了示例代码,但它不起作用。还观察到两个选项卡只有一个窗口句柄。如何再次切换到上级页签?

代码语言:javascript
复制
 driver = webdriver.Firefox()
 driver.set_page_load_timeout(60)
 driver.implicitly_wait(15)
 driver.get("https://www.google.co.in")
 oldtab = driver.current_window_handle
 print oldtab
 print driver.title
 body = driver.find_element_by_tag_name("body")
 print 'new tab opened'
 driver.get("http://gmail.com/")
 print driver.title
 print 'back to old tab'
 driver.switch_to_window(oldtab)
 print driver.title
 for handle in driver.window_handles:
    print "Handle = ",handle
EN

回答 4

Stack Overflow用户

发布于 2014-04-23 13:00:04

在将handle切换到父选项卡之前,您需要使用Keys切换选项卡。

代码语言:javascript
复制
 from selenium.webdriver.common.keys import Keys

 driver = webdriver.Firefox()
 driver.set_page_load_timeout(60)
 driver.implicitly_wait(15)

 # First Tab
 driver.get("https://www.google.co.in")
 oldtab = driver.current_window_handle
 print driver.title
 time.sleep(3)

 # Second Tab
 driver.find_element_by_tag_name("body").send_keys(Keys.CONTROL + "t")
 driver.get("http://gmail.com/")
 newtab = driver.current_window_handle
 print driver.title
 time.sleep(3)

 # Go back to First Tab
 driver.find_element_by_tag_name("body").send_keys(Keys.ALT + Keys.NUMPAD1)
 driver.switch_to_window(oldtab)
 print driver.title
 time.sleep(3)

 # Go to Second Tab again
 driver.find_element_by_tag_name("body").send_keys(Keys.ALT + Keys.NUMPAD2)
 driver.switch_to_window(newtab)
 print driver.title
 time.sleep(3)
票数 5
EN

Stack Overflow用户

发布于 2014-03-17 21:04:55

另一种实现方法是-打开浏览器的两个实例,比如driver1driver2,在浏览器实例中打开相应的url并对其执行操作-

代码语言:javascript
复制
driver1 = webdriver.Firefox()
driver1.get("https://www.google.co.in")
//perform actions for page https://www.google.co.in


driver2 = webdriver.Firefox()
driver2.get("http://gmail.com/")
//perform actions for page http://gmail.com/
票数 1
EN

Stack Overflow用户

发布于 2014-02-20 14:48:39

下面的解决方案对我很有效。

代码语言:javascript
复制
ActionChains(driver).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()
time.sleep(5)    
ActionChains(driver).key_down(Keys.CONTROL).send_keys(Keys.NUMPAD1).key_up(Keys.CONTROL).perform()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21880295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档