首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用空格调用add_argument的机器人框架

用空格调用add_argument的机器人框架
EN

Stack Overflow用户
提问于 2021-02-01 15:53:06
回答 1查看 627关注 0票数 2

为了设置机器人框架使用的浏览器的自定义用户代理,我发现了您可以这样设置的每个位置:

代码语言:javascript
复制
    ${options}=                         Evaluate
    ...                                 sys.modules['selenium.webdriver'].ChromeOptions()
    ...                                 sys, selenium.webdriver
    Call Method                         ${options}
    ...                                 add_argument                            --user-agent\=User agent with spaces

    Create WebDriver                    Chrome                                  chrome_options=${options}

    Go To                               https://www.whatismybrowser.com/detect/what-is-my-user-agent

但是add_argument User agent with spaces的值没有转义,它在浏览器中添加了不必要的错误选项卡:

whatismybrowser.com检测到的用户代理是User

我的问题很简单,如何传递有空格的参数值?

我试过:

  • User agent with spaces
  • User\ agent\ with\ spaces
  • User\\ agent\\ with\\ spaces
  • User${SPACE}agent${SPACE}with${SPACE}spaces
  • User\${SPACE}agent\${SPACE}with\${SPACE}spaces
  • "User agent with spaces"
  • 'User agent with spaces'

这些都不管用..。

EN

回答 1

Stack Overflow用户

发布于 2021-02-02 09:27:18

我已经找到了问题的根源。

在深入研究我的问题时,我发现这个问题也正是我遇到的问题:add_argument for user agent cuts off at first space

我使用的是一个机器人框架的对接图像:https://github.com/ppodgorsek/docker-robot-framework

二进制启动程序bin/chromium-browser.sh包含未引用的bash位置参数运算符:

代码语言:javascript
复制
#!/bin/sh

exec /usr/lib/chromium/chrome-original --disable-gpu --no-sandbox $@

用引用的位置参数运算符代替它可以解决这个问题,我可以设置受控浏览器的自定义用户代理。

代码语言:javascript
复制
#!/bin/sh

exec /usr/lib/chromium/chrome-original --disable-gpu --no-sandbox "$@"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65995818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档