• 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"
     
  • 相关阅读:
    Scrapy选择器和持久化
    SQLAlchemy
    Python数据库连接池DBUtils
    flask应用上下文和g
    flask请求上下文源码解析
    flask的session源码流程和第三方组件
    430软狗不喂狗后系统起不来的问题
    VS2008 快捷键大全
    未能加载或程序集“XXXX,Version=0.0.0.0,Culter=neutral,PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
    用vs2008打开vs2005项目
  • 原文地址:https://www.cnblogs.com/lovesKey/p/8097281.html
Copyright © 2020-2023  润新知