当前位置: 首页 > 知识库问答 >
问题:

如何在打开下一个新标签页之前关闭自动打开的标签页?

漆雕嘉茂
2023-03-14

在页面中收集各种链接后,我点击这些链接并将其收集成汤。现在的问题是,链接在新标签中打开。我想在代码打开新标签中的下一个链接之前关闭标签。下面是代码片段。收完汤后,请帮我把每个标签关上。

我用python 3.7硒铬驱动

# collecting results from page 1 only.
candidate_name = []
candidate_links = driver.find_elements_by_xpath("//a[@data-tn-element='resume-result-link[]']")
for candidates in candidate_links:
    candidate_name.append(candidates.text)
    candidates.click()
    time.sleep(3)
    html_content = driver.page_source
    soup = BeautifulSoup(html_content, 'html.parser')
    text = soup.getText()

    candidates.send_keys(Keys.CONTROL+'w')
    #write it to a text file
    for i in candidate_name:
        path = r'c:/users/user/desktop/resumes1/'+ i
        with open(path, 'w', encoding='utf-8') as file:
            file.write(text)

time.sleep(5)
assert "No results found." not in driver.page_source
driver.quit()

共有1个答案

高明辉
2023-03-14

简单的代码为我工作如下。在打开下一个选项卡之前关闭选项卡。

# switch to the tab
driver.switch_to.window(driver.window_handles[-1])

# do whatever in the tab
time.sleep(5)

# close the tab
driver.close()

#switch back to the main window again
driver.switch_to.window(driver.window_handles[0])
 类似资料:
  • 问题内容: 我希望能够在Selenium 2中的新选项卡中打开链接。我也想在与页面完成交互后关闭该选项卡。这怎么可能,如果我有一个的标签? 我将Selenium 2的Java API与运行在Firefox 4上的Firefox驱动程序结合使用。 问题答案: 目前,Selenium WebDriver API没有任何处理选项卡的方法。在我希望看到一种语言绑定(例如Java)的实现之前,该项目确实需要

  • 我在嵌套的代码周围看到一些奇怪的行为 鉴于: 在Chrome中,这会导致 也就是说,它关闭开始标记并打开结束标记。我(当然)听说过“自动关闭标签”;我从没听说过“自动打开标签”。 IE11采用了一种不同的(可以说是更错误的)方式: 因此,它不会自动关闭打开的标记,但它会自动打开关闭的标记,从而导致不平衡的DOM树。 无论如何,我很好奇解决这个问题的正确途径是什么;我应该打开Chrome和IE错误跟

  • 问题内容: 自从将近一个月以来,我一直在使用CasperJS测试框架来制作一些测试套件,但是其中之一面临着一个问题。 这是我要执行的操作:我正在浏览一个url(第1页),并且必须从另一个url(像在图形浏览器中那样模拟新选项卡)执行另一个操作,而不必退出第一个(第1页)。来自第二个URL的操作将更改我的第一个URL。希望它足够清楚:) 因此,现在,当我到达观察第一个URL的步骤时,我通过执行操作打

  • Selenium 2:打开新选项卡中的链接并关闭选项卡 但是它打开了一个窗口而不是一个标签,我无法控制延迟。我用的是硒3。使用带有JAVA的Selenium WebDriver,我试图自动化一个功能,我必须打开一个新的选项卡,在那里执行一些操作,然后回到以前的选项卡(父选项卡)。用firefox做这件事最好的方法是什么?

  • 本文向大家介绍Window.Open如何在同一个标签页打开,包括了Window.Open如何在同一个标签页打开的使用技巧和注意事项,需要的朋友参考一下 如果有Ajax,那么设置

  • 问题内容: 我想使用Javascript在其他标签中打开新页面,但仍将重点放在当前标签上。我知道我可以这样做: 但是,当我在chrome中执行此操作时,它会闪烁新标签一会儿,然后再切换回当前标签。我想避免这种情况。 该应用程序是个人书签,因此仅需在最新的Chrome中运行。 问题答案: 更新:谷歌浏览器的版本41 似乎已更改行为。 这可以通过在属性属性设置为所需的动态生成元素上模拟+ (或打开背景