使用Python打开新窗口时,selenium window_handles不正确

时间:2015-05-15 11:41:21

标签: python selenium selenium-webdriver webdriver window-handles

我想在Python中使用selenium在一个浏览器中打开多标签,并使用多标签同时抓取实时投注赔率。

网站首页生成一系列游戏。但是,除非你找到游戏元素并使用click()(网站是ajax重),否则无法获得游戏链接,这会在同一个标​​签中打开游戏。我打开多标签的解决方案是获取游戏列表,然后手动打开首页加载主页的新标签,然后点击列表中不同索引的游戏。但是,我发现 c.StockCode = l.OemNumberPrevious数组始终只包含一个项,这是当前选项卡,而不是我在浏览器中手动打开的所有选项卡。

有人可以告诉我出了什么问题,或者你是否可以为这个问题提供更好的解决方案?

问题简化为以下代码:

driver.window_handles

我打开了3个标签,但是len(driver_temp.window_handles)总是1

1 个答案:

答案 0 :(得分:4)

Selenium不提供操作浏览器标签的API 。您可能已经注意到应用CTRL/COMMAND+T" hack"打开一个新标签。

详见:

相反,请打开新的浏览器窗口。

嗯,公平地说,重要的是要提到Firefox和Chrome中的行为完全不同 - 如果您在Chrome中打开新标签页,selenium会将每个标签视为一个窗口,并带有它自己的句柄并且您可以轻松地使用switch_to.window()在它们之间切换。