selenium webdriver基于Python源码案例,python selenium webdriver

  selenium webdriver基于Python源码案例,python selenium webdriver

  这几天在做一个爬虫项目,所以用了selenium webDriver包。

  在这个过程中,我真的踩了很多坑。

  现在先说说我们感受到的坑!

  首先,如果你需要下载pdf文件,请不要使用chrome浏览器,因为我找了一整天都找不到pdf查看器。基本上online就是一个关闭pdf的插件。不过最新版本的chrome似乎取消了pdfviewer的插件。Chrome中与pdf相关的现在是pdfDocuments。在chrome浏览器中输入chrome://settings/content/PDF文档,就可以进去了。

  这是我能给你的唯一小费。如果你成功解决了这个问题,请在评论中告诉我。谢谢你。

  后面再说我是怎么搞定的吧!

  其实很简单。既然不会做chrome,那我就做firefox吧。

  这个很简单。

  Firefox options options=new Firefox options();选项。SetPreference(pdfjs.disabled ,true);//关闭pdf查看火狐驱动我的驱动=新火狐驱动(选项);就三句话,仅此而已。

  但是下载的时候firefox会弹出一个下载框。

  选项。set preference( browser . helper apps . never ask . savetodisk , application/pdf );//禁止pdf文件下载的提示//options . set preference( browser . helper apps . never ask . savetodisk , application/octet-stream );//禁止八进制流文件下载提示。中间加上这句话,就这样了。

  不,只需在下面添加评论。

  然后项目需要打包直接给用户运行,用户不需要安装firefox就可以直接运行。

  我用了一个比较笨的方法,就是把所有安装的firefox文件都拿出来,按照firefox文件夹里的目录树,复制到安装程序安装里的应用文件夹里。

  然后直接读取指定火狐的位置。

  选项。BrowserExecutableLocation=System。IO . directory . getcurrentdirectory() \ \ Mozilla Firefox \ \ Firefox . exe ;//打包后设置浏览器路径。这句话的意思是,在你的程序运行的位置,先找到Mozilla Firefox,然后wydxb去firefox.exe。

  记住这句话,但是要加在options和driver之间。

  记住控制台。C#的ReadLine有漏洞。

  如果你发现自己在读一个很长的URL,而且读不成功。可能这就是ReadLine的坑吧。它的最大长度只有250字节。

  蒸汽=控制台。OpenStandardInput();控制台。SetIn(新的StreamReader(steam,编码。默认,假,5000));控制台的读取长度。以上两个代码可以增加ReadLine。

  也就是说,如果你用XPath读取元素,发现元素的读取是无效的,就会有明显可以交互的元素。但是当你点击时,你报告一个错误。你可以把它改成CssSelector。

  var downloadBtn=myDriver。FindElement(By。CSS selector( # screen-reader-main-content div div . buttons . text-s . pull-left . pad-left div。PdfDownloadButton’));

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: