【发布时间】:2018-10-31 07:58:29
【问题描述】:
我目前正在尝试使用 selenium 抓取网站。 我有一个包含元素的表格,我想单击每个元素,在新窗口/选项卡中打开链接,处理此窗口/选项卡,关闭它并单击下一个元素等。到目前为止,我可以单击表,打开链接并处理页面。 很遗憾,我无法在新窗口或标签中打开链接。
我无法向元素发送键盘命令。 我也试过了
action = ActionChains(self.driver)
action.move_to_element(ele)\
.key_down(Keys.SHIFT)\
.click(ele)\
.key_up(Keys.SHIFT)\
.perform()
这以某种方式仅在当前窗口中打开链接(我没有得到新的窗口句柄,仍然只有一个)。 如果有任何帮助,我将不胜感激。
编辑:我也无法使用浏览器手动打开新窗口/标签中的链接。
【问题讨论】:
-
我没有看到您使用 CTRL+T 打开选项卡?
-
但是我必须向元素发送 CTRL+T 对吗?我无法向元素发送键盘命令。我收到错误消息:消息:未知错误:无法聚焦元素。我试过 element.send_keys(Keys.CONTROL + 'T')
-
该错误是因为您失去了页面的焦点。使用 driver.WebDriverWait(driver,10).until(EC.presence_of_element_located(By.CLASS_NAME,'classname'))
-
我尝试了以下方法: id = ele.get_attribute('id') ele=WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.ID,id))) ele .send_keys(Keys.CONTROL + 'T') 我仍然收到无法聚焦元素错误。 ele 被作为参数发送给函数。
-
@Prany 他正在尝试使用 SHIFT+
在新选项卡中打开链接,而不是使用 CTRL+T。当您使用 CTRL+T 时,它会打开一个没有 URL 的新选项卡。他必须获取 URL(如果可能),然后将其发送到新标签。
标签: python selenium web-crawler