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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。