Debian 10/9 安装 Selenium+ChromeDriver
<p><span style="font-size: 18pt">转发: https://blog.csdn.net/GO_D_OG/article/details/79073727</span></p><p> </p>
<p><span style="font-size: 18pt">查看Debian版本 :</span></p>
<p>cat /etc/issue</p>
<p><img src="https://img2020.cnblogs.com/blog/1665064/202007/1665064-20200705135145787-1899239558.png"></p>
<p> </p>
<p><span style="font-size: 18pt">测试配置:</span></p>
<p><span style="font-size: 15px">google-chrome 版本</span></p>
<p> </p>
<div class="cnblogs_code">
<pre>root@a713d689f464:/opt/chrome<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> google-chrome -version</span>
Google Chrome 83.0.4103.116</pre>
</div>
<p>ChromeDriver 版本: 83</p>
<p> </p>
<p><span style="font-size: 18pt">一、安装chrome</span><br><em id="__mceDel"></em></p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">wget https://dl.google.com/linux/direct/google-chrome-<span style="color: rgba(0, 0, 0, 1)">stable_current_amd64.deb
sudo apt</span>-get <span style="color: rgba(0, 128, 128, 1)">-f</span><span style="color: rgba(0, 0, 0, 1)"> install
dpkg </span>-i google-chrome-stable_current_amd64.deb</span></pre>
</div>
<p> </p>
<p><em id="__mceDel"><span style="font-size: 18px">1、如果提示错误:</span></em></p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">dpkg: error processing package google-chrome-stable (--install):</span></pre>
</div>
<p><em id="__mceDel"><em id="__mceDel">请执行:</em></em></p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">sudo apt-<span style="color: rgba(0, 0, 0, 1)">get upgrade
sudo apt</span>-<span style="color: rgba(0, 0, 0, 1)">get update
sudo apt</span>-get <span style="color: rgba(0, 128, 128, 1)">-f</span><span style="color: rgba(0, 0, 0, 1)"> install
dpkg </span>-i google-chrome-stable_current_amd64.deb</span></pre>
</div>
<p> </p>
<p>之后就不会报错了,安装成功的话可以查看到安装路径以及安装的版本:</p>
<p><img src="https://img2020.cnblogs.com/blog/1665064/202007/1665064-20200705135821688-406644997.png"></p>
<p><br><span style="font-size: 18pt">二、下载chromedriver</span><br><span style="font-size: 14px">要根据chrome浏览器的版本对应下载driver驱动的版本:</span><br><span style="font-size: 14px">下载地址:http://npm.taobao.org/mirrors/chromedriver/</span></p>
<p> </p>
<div class="cnblogs_code">
<pre>wget http://npm.taobao.org/mirrors/chromedriver/83.0.4103.39/chromedriver_linux64.zip</pre>
</div>
<p> 解压后放到 /usr/bin/ 目录下</p>
<div class="cnblogs_code">
<pre>mv chromedriver /usr/bin/</pre>
</div>
<p> </p>
<p> <img src="https://img2020.cnblogs.com/blog/1665064/202007/1665064-20200705140742928-1150759547.png"></p>
<h3 id="安装xvfb"><span style="font-size: 18pt">三、安装Xvfb</span></h3>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">sudo apt-get install xvfb</span></pre>
</div>
<p><span style="font-size: large">安装好后执行:</span></p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">Xvfb -ac :7 -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 &<span style="color: rgba(0, 0, 0, 1)">
export DISPLAY</span>=:7 (和上一步的number号相同)</span></pre>
</div>
<p> </p>
<p>由于每次需要运行程序前都需要启动一次xvfb太麻烦,所以直接写一个开机自启动脚本,这样下次就直接执行程序就可以了。我们需要将脚本写在/etc/rc.local路径下,开机之后会执行/etc/rc.local文件中的脚本,在exit 0前面添加以下内容:<br>安装Xvfb</p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px"><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">! /bin/bash</span>
case <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$1</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">
start)
</span>/usr/bin/Xvfb :7 -ac -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 &<span style="color: rgba(0, 0, 0, 1)">
export DISPLAY</span>=:7<span style="color: rgba(0, 0, 0, 1)">
;;
stop)
killall Xvfb
;;
esac</span></span></pre>
</div>
<p> </p>
<p>关于错误:Chrome failed to start: exited abnormally<br>这个错误我遇到了两次,第一次的时候只需要安装Xvfb就成功解决了,可第二次我已经安装了Xvfb且正常打开了仍然提示了这样的错误,原因是因为需要在<strong><span style="color: rgba(255, 0, 0, 1)">自己</span><span style="color: rgba(255, 0, 0, 1)">测试代码</span></strong>里加上以下内容(很关键!):</p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px">//<span style="color: rgba(0, 0, 0, 1)"> 禁用扩展
chromeOptions.addArguments(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">--disable-extensions</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span>//<span style="color: rgba(0, 0, 0, 1)"> 使用无头模式运行
chromeOptions.addArguments(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">--headless</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span>//<span style="color: rgba(0, 0, 0, 1)"> 禁用GPU
chromeOptions.addArguments(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">--display-gpu</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span>//<span style="color: rgba(0, 0, 0, 1)"> 启动无沙盒模式运行
chromeOptions.addArguments(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">--no-sandbox</span><span style="color: rgba(128, 0, 0, 1)">"</span>);</span></pre>
</div>
<p> </p>
<p>可能是因为chrome占内存过大而卡屏,使得chrome无法正常打开<br>并且记得chromedriver的权限要设置为可执行:</p>
<p>chmod -R 777 chromedriver<br><br></p><br><br>
来源:https://www.cnblogs.com/666gang/p/13245818.html
頁:
[1]