zoukankan      html  css  js  c++  java
  • linux 下 命令行中运行 selenium chrome 问题

    1.chrome 现在不允许使用root运行了.

    2.无界面 chromedriver 调用chrome 会出错.

    <另外一定要匹配 chromedriver和chrome 的版本. 要不会出各种奇怪的问题!!!> 

    第一个问题解决方案:

    新建立一个用户.

    runuser -l username -c 'python3 xxx.py'

    第二个问题:

    1.安装Xvfb和pyvirtualdisplay

    yum install xorg-x11-server-Xvfb

    pip install pyvirtualdisplay

    2.安装firefox和selenium

    yum install firefox

    pip install selenium

    到这里。环境就配置好了。接下来就可以上代码了。

    3.示例代码

    from pyvirtualdisplay import Display
    
    from selenium import webdriver
    
    display = Display(visible=0, size=(900, 800))
    
    display.start()
    
    driver = webdriver.Firefox()
    
    driver.get('http://www.cnblogs.com')
    
    print driver.title
    
    driver.quit()
    
    display.stop()

    runuser 扩展

    runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。
    仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。

    1、runuser 语法

    语法与 su 命令基本一样:

    -, -l, –login

    让shell成为登录shell,用 runuser -l PAM 文件替代默认的;

    -g –group=group

    指定主要的组;

    -G –supp-group=group

    指定追加组

    -c, –command=COMMAND

    使用 -c 传递单个命令到 shell 中,执行命令后,就退出到 root;

    –session-command=COMMAND

    通过一个单一的命令用 -c 参数到 shell ,不创建一个新的会话;

    -f, –fast

    通过 -f 参数到 shell (针对 csh 或 tcsh);

    -m, –preserve-environment

    不重置环境变量;

    -p     same as -m

    -s, –shell=SHELL

    指定执行命令的shell;

    2、runuser 样例

    runuser -l userNameHere -c '/path/to/command arg1 arg2'
    runuser -l oracle -c 'ulimit -SHa'
    runuser -s /bin/sh -c "/usr/local/nginx/sbin/nginx"
     
  • 相关阅读:
    第十二周 张文小组学习情况总结
    第五章
    第四章
    第三章
    软工实训--学习回顾2
    软工实训-- 学习回顾1
    构建之法——读书笔记(9)
    构建之法——读书笔记(8)
    构建之法——读书笔记(7)
    第13周张文小组学习情况总结
  • 原文地址:https://www.cnblogs.com/lovesKey/p/8097281.html
Copyright © 2011-2022 走看看