【问题标题】:python selenium . how to switch back to previous window/tab after a download opens up a new tab蟒蛇硒。下载后如何切换回上一个窗口/选项卡打开一个新选项卡
【发布时间】:2021-07-24 22:10:26
【问题描述】:

问题是当我通过 click() 下载文件时,它会打开一个新选项卡/窗口以启动下载,然后浏览器会自动关闭该选项卡/窗口。但是,当我想访问下载链接所在的上一个页面时,我收到错误“无效会话 ID”。

我在使用 Safari 进行自动化操作时收到错误“No such window exception”。

如果有人知道如何处理这个问题,我会很感激我能得到的所有帮助。谢谢大家!

我的代码如下,尝试点击file_dl2后出现错误

attachments = browser.find_element_by_id('sAttachments')
attachments.click() 

time.sleep(2)

files = browser.find_element_by_xpath('//*[@id="FileListFI"]/div[1]') 
files.click()

file_dl = browser.find_element_by_xpath('//*[@id="ctl00_chpDialog_hrefFileLink"]/img')  
file_dl.click()

browser.implicitly_wait(10)

file_dl2 = browser.find_element_by_xpath('//*[@id="ctl01_chpDialog_hrefFileLink"]/img') 
file_dl2.click()

【问题讨论】:

  • 我们需要查看您当前的代码及其不工作的地方、完整的任何错误消息等。
  • 根据您的描述:1)您在浏览器 #1 中的页面上并单击链接,2)该站点在浏览器 #2 中打开一个新窗口,该窗口下载文件然后关闭浏览器 #2 离开浏览器#1。如果是这种情况,您根本不必切换窗口。 Selenium 不会自动切换到新窗口等。您必须在要切换时告诉它。如果不是这种情况,请清楚地列出您的步骤,以便我们更好地了解您正在尝试做什么以及它在哪里停止工作。
  • @JeffC 我已经发布了上面的代码作为编辑。我没有用 selenium 切换任何窗口,但它仍然无法工作。
  • 请将您的代码格式化为代码,您仍然需要清楚地解释步骤流程(用文字),以便我们理解场景。
  • 如果可能的话分享网址..试试

标签: python google-chrome selenium-webdriver


【解决方案1】:
....
     driver.get("<web-site>")
                sleep(1)
....

这会获取原始/以前的网站被获取(在你有 click() 动作的地方添加这个代码)。

您可以在 sleep() 函数之后附加新的指令集并进一步工作。

【讨论】:

  • 这与切换窗口没有任何关系,如果他在第二个窗口中并执行 driver.get,他最终将驾驶第二个窗口而使第一个窗口成为孤立窗口。
  • 你能详细说明一下吗?
  • 问题是如何切换窗口。这并没有解决这个问题。如果他打开了两个窗口并切换到第二个窗口,则使用 driver.get 将开始驾驶第二个窗口而离开第一个窗口。
  • 是的,我一直在想这个缺陷,我想我会删除我的答案,抱歉不便
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多