【问题标题】:Get the tab the user is viewing in selenium获取用户在 selenium 中查看的标签
【发布时间】:2021-03-30 03:08:15
【问题描述】:

有什么方法可以确定 用户 正在查看哪个标签,比如说活动标签(在 selenium 中)是最后一个并且对用户来说是相同的,然后用户返回到第一个一,我怎么知道这与硒?

【问题讨论】:

  • 您要查找的术语是句柄,而要获取用户正在查看的选项卡是 driver.current_window_handle。
  • @arundeepchohan current_window_handle 类似于 Selenium 具有焦点但不是用户的窗口句柄。
  • 我认为他的意思是硒中的活动标签。应该改写。
  • @arundeepchohan 这不是用户正在查看的标签,而是 selenium 的活动标签,而不是用户。

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


【解决方案1】:

根据收集到的信息,似乎没有办法做到这一点。您可以使用以下方法查看当前窗口是否为活动窗口:

driver.execute_script("return document.visibilityState") === "visible"

但是您不能循环浏览选项卡并检查此属性,因为一旦您更改选项卡,您更改的选项卡也将变为可见选项卡。

【讨论】:

    【解决方案2】:

    在切换标签时,您需要将Selenium 的焦点从一个标签更改为另一个标签。

    您可以在以下位置找到相关的详细讨论:

    Selenium 可能没有将焦点放在您当前正在可视化的 选项卡 上。您希望 Selenium 关注哪个选项卡由用户自行决定。

    您始终可以使用current_window_handle 属性提取Selenium 具有焦点的当前窗口句柄,如下所示:

    print(driver.current_window_handle)
    

    【讨论】:

    • 窗口句柄是 selenium 的真实来源。我也会关注driver.current_url,但由于页面有重定向,所以没有那么紧密......
    • 所以没有办法知道用户正在可视化哪个选项卡?这就是问题。
    • @Ferus 这不是 Selenium 旨在执行/执行的操作。用例正好相反。
    • @DebanjanB 那么对于这种情况,浏览器扩展会更适合吗?
    • @Ferus 我不确定,所以我会避免任何评论。
    猜你喜欢
    • 2017-05-09
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2021-03-07
    • 2016-10-19
    • 2022-11-10
    相关资源
    最近更新 更多