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

如何处理基于PDF的窗口

邹弘
2023-03-14

我有这样的场景,当点击一个按钮时,它打开了一个基于PDF文件的窗口:

我使用的是Gecko驱动程序版本-21.0Firefox版本-61.0.1 Selenium独立服务器-3.13

我无法切换到基于PDF文件的窗口获取错误:

我想用最新的壁虎驱动程序-21.0来处理它

共有1个答案

卢永寿
2023-03-14

不幸的是,很难通过切换选项卡在pdf上执行操作。最好的方法是下载pdf并使用某个java库或PDF-Parser对下载的文件执行操作。

pdf的这种常见行为是由于pdf JS的启用特性。在firefox配置文件中禁用它可以解决您的问题

更新您的Firefox配置文件可以解决此问题。

       FirefoxProfile profile = new FirefoxProfile();

       profile.setPreference( "pdfjs.disabled", true );
       profile.setPreference("pdfjs.disabled", true );
       profile.setPreference("pdfjs.enabledCache.state", false );
       profile.setPreference("pdfjs.enabledCache.state", false);
       profile.setPreference("pdfjs.migrationVersion", 2);

       profile.setPreference("pdfjs.previousHandler.alwaysAskBeforeHandling", true);
       profile.setPreference("pdfjs.previousHandler.preferredAction", 4);

       FirefoxOptions options = new FirefoxOptions().setProfile(profile);
       WebDriver driver = new FirefoxDriver(options);
 类似资料:
  • 问题内容: 我想实现一个基于Redis的会话存储。我想将会话数据放入Redis。但是我不知道如何处理会话过期。我可以遍历所有redis密钥(sessionid)并评估上次访问时间和最大空闲时间,因此我需要将所有密钥加载到客户端中,并且可能有1000m会话密钥,并且可能导致非常差的I / O表演。 我想让Redis管理过期,但是密钥过期时没有侦听器或回调,因此无法触发HttpSessionListe

  • 在Anylogic模型中,我的源块根据定义代理必须到达哪个节点的数据库值在不同节点上生成代理。 相同位置的订单同时到达(例如,7:30,3个代理订单到达node1,4个代理订单到达node2)。 现在我想做的是,节点1上的订单生成一批1x2和1x1,而节点2上的订单生成一批2。这些代理将扣押将这些批次运输到同一位置的运输公司,然后解除批次。 因此,我的问题是如何基于从数据库加载的Arrivaloc

  • 本文向大家介绍如何在Selenium中处理基于Web的警报?,包括了如何在Selenium中处理基于Web的警报?的使用技巧和注意事项,需要的朋友参考一下 Selenium WebDriver借助Alert界面提供了多个API来处理弹出窗口或警报。 解雇() 这将取消警报按钮。 接受() 这将接受警报按钮。 getText() 这将提取警报文本。 sendKeys() 这将在警报框中输入文本。 示

  • 我有一些问题。 基于类中的时间戳,我想做一个逻辑,排除在1分钟内输入N次或更多次的数据。 UserData类有一个时间戳变量。 起初我试着用一个翻滚的窗户。 但是,滚动窗口的时间计算是基于固定时间的,因此无论UserData类的时间戳如何,它都不适合。 如何处理流上窗口UserData类的时间戳基? 谢谢。 附加信息 我使用这样的代码。 我试了一些测试。150个样本数据。每个数据的时间戳增加1秒。

  • 我目前正在使用硒自动化应用程序,当单击按钮时会出现一个新的弹出窗口。我必须切换到该窗口并执行某些操作,例如搜索记录。 注意:父窗口和子窗口具有相同的标题。

  • 我觉得这些可能是基本的话题,但我在其他地方找不到简洁的答案。 在构建TCP服务器时,我的理解是,每个连接的客户端都必须转移到自己的端口,以保持合理的连接(例如,知道此消息来自此客户端)。 如何设置这一点?我假设你有一个列表和一个人们连接的专用“入口点”套接字。连接套接字会找到一个空闲端口,用端口号进行回复,并在该端口上设置一个新的套接字进行侦听。这听起来对吗? 如果是这种情况,在我看来,在侦听传入