Selenium 求教:python 3.6 + selenium 已经打开了的页面上再打开一个新标签页该怎么实现? 我用模拟 ctrl+t 的方式没有实现。

kaka谁说不是 · 2018年04月19日 · 最后由 kaka谁说不是 回复于 2018年04月20日 · 3684 次阅读

driver.find_element_by_css_selector('body').send_keys(Keys.CONTROL, 't')
handles = driver.window_handles
driver.switch_to_window(handles[1])
driver.get("http://www.baidu.com")
通过这个方式,获取的句柄还是只有原来那个。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 13 条回复 时间 点赞
self.click(*self.btn_netRecharge['ConfirmRecharge'])
self.driver.switch_to_window(self.driver.window_handles[1])

python 3.5 selenium3.3.1 正常哇

皆非 回复

self.click(*self.btn_netRecharge['ConfirmRecharge'])
这句是什么意思? 没看懂诶。。 是什么方法的应用?

click 是我自己封装的方法,跟切换窗口没关系啊

新开一个窗口,通过执行 js 来新开一个窗口

js='window.open("https://www.sogou.com");'
browser.execute_script(js)

皆非 回复

嗯。 切换窗口是可以的, 我指的是 driver.find_element_by_css_selector('body').send_keys(Keys.CONTROL, 't')
这句代码。 打开一个新的标签页。。 没有生效。

Jerry li 回复

js 的方法我试了一下是打开一个新的浏览器窗口,而不是在原来已经打开的窗口中打开一个新的标签页。。。 如果是打开两个浏览器窗口,那么还能切换?

和楼主一样的问题😟

我本地用 chrome 是正常的,打开了新标签:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/') #####get' 浏览器没有反应
time.sleep(2)
js = "window.open('http://www.sogou.com')"
driver.execute_script(js)
time.sleep(5)

不知道和环境或者浏览器设置有没关系

Jerry li 回复

我最后也是用了 js 的方法,但是用的 Firefox,然后打开的是新浏览器窗口,但是后续操作包括窗口切换什么的都不影响,我就那样用了。。 你这段代码我复制一下跑跑看。

小兔叽 回复

我用的你楼下回复的那种方式,虽然不是新标签页,但是后续操作不影响,你可以试试。

Jerry li 回复

的确可以的啊, 但我的会生成新的浏览器窗口,估计是因为我是调用的。。。

可以了,谢谢啦!我的谷歌浏览器,开启的是新标签页

小兔叽 回复

如果在同一个方法下,就是打开的是新标签页,如果是写在两个方法下 然后调用的话 就是打开的新浏览器窗口,但是两种都不影响后续操作的了。

kaka谁说不是 关闭了讨论 04月20日 14:40
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册