【发布时间】:2015-07-27 07:49:50
【问题描述】:
我想使用 selenium 和 Python 在一个浏览器中打开多个选项卡,并同时使用多个选项卡获取实时投注赔率。
网站首页生成游戏列表。但是,除非您找到游戏元素并使用 click()(该网站是 ajax 重),否则无法获取游戏的链接,这将在同一选项卡中打开游戏。我打开多标签的解决方案是获取游戏列表,然后手动打开新标签并首先加载主页,然后单击列表中具有不同索引的游戏。但是,我发现 driver.window_handles 数组始终只包含一项,这是当前选项卡,而不是我在浏览器中手动打开的所有选项卡。
谁能告诉我出了什么问题,或者您是否可以为这个问题提供更好的解决方案?
问题简化为以下代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# create a new Firefox session
driver_temp = webdriver.Firefox()
driver_temp.implicitly_wait(30)
driver_temp.get("https://www.google.com")
body = driver_temp.find_element_by_tag_name('body')
# manually open second tab
body.send_keys(Keys.CONTROL + 't')
driver_temp.get("https://www.google.com")
body = driver_temp.find_element_by_tag_name('body')
# manually open third tab
body.send_keys(Keys.CONTROL + 't')
driver_temp.get("https://www.google.com")
body = driver_temp.find_element_by_tag_name('body')
#print the number of window_handles
print len(driver_temp.window_handles)
我打开了 3 个选项卡,但是 len(driver_temp.window_handles) 始终为 1
【问题讨论】:
标签: python selenium selenium-webdriver webdriver window-handles