Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
硒c#铬pdf验证_C#_Google Chrome_Selenium_Pdf - Fatal编程技术网

硒c#铬pdf验证

硒c#铬pdf验证,c#,google-chrome,selenium,pdf,C#,Google Chrome,Selenium,Pdf,通过Selenium使用C#,我试图验证应用程序中弹出的PDF。单击PDF右上角的“关闭(X)”按钮的“我的代码”可以工作,但无法验证PDF的任何元素,例如: //*[@id="plugin"] 基本上,我无法访问在PDF上使用Inspect后打开的单独开发人员工具浏览器中的任何元素。PDF关闭按钮的元素(我可以访问)位于单独的开发人员工具浏览器中 我已经为Chrome安装了PDF查看器(PDF.js)扩展。 我还尝试过切换帧: IWebDriver driver.SwitchTo().Wi

通过Selenium使用C#,我试图验证应用程序中弹出的PDF。单击PDF右上角的“关闭(X)”按钮的“我的代码”可以工作,但无法验证PDF的任何元素,例如:

//*[@id="plugin"]
基本上,我无法访问在PDF上使用Inspect后打开的单独开发人员工具浏览器中的任何元素。PDF关闭按钮的元素(我可以访问)位于单独的开发人员工具浏览器中

我已经为Chrome安装了PDF查看器(PDF.js)扩展。 我还尝试过切换帧:

IWebDriver 
driver.SwitchTo().Window(PropertiesCollection.driver.WindowHandles.Last())

不走运。是否有人可以共享工作代码段?

如果您使用的是Chrome或Firefox,则PDF文档通常会在另一个选项卡中打开。在这种情况下,您可以使用下面的代码(C#),这对我来说很好--


这将把Selenium的焦点转移到最后一个窗口,在那里,您可以拍摄一个屏幕截图来验证是否生成了PDF

PDF不会呈现为文档对象。Selenium无法与PDFi交互。我认为应该使用一个PDF库(我使用一个,但它不是免费的),将PDF转换为html,然后您可以将html保存为html文件并使用Selenium导航到它,或者更好的选择是使用HtmlAlityPack加载它并以这种方式导航。尽管如此,这仍然是一个非常丑陋的过程,因为它使用OCR-随机div,在两个不同元素之间剪切单词,每个元素只是一个标签和样式信息,因此很难找到一个参考点来导航。
driver.SwitchTo().Window(driver.WindowHandles.Last());