【问题标题】:How do I modify Google Chrome user agent string with Robot Framework如何使用 Robot Framework 修改 Google Chrome 用户代理字符串
【发布时间】:2014-01-16 07:28:18
【问题描述】:

我尝试使用 Open Browserdesired_capabilities 修改用户代理字符串,发现 Chrome 不再支持该技术。

经过大量搜索和阅读,我发现有一个新版本的 Selenium2library 有一个新关键字 Create Webdriver 应该可以解决这个问题。

我修改了他们的示例以满足我的需要。但无论我做什么,它都不会修改用户代理字符串。

除了没有修改用户代理字符串的完美工作浏览器之外,我没有收到任何错误、警告、任何内容。

我尝试修改 --start-maximized 等其他选项,结果相同,即根本没有结果。

摘自打开 Google Chrome 并(据称)修改用户代理字符串的关键字:

${options}= 评估 sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${options.add_argument}= 设置变量 user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 System/ComputerId"
创建 WebDriver Chrome chrome_options=${options}
转到 http://www.useragentstring.com

仿照此处给出的示例(在页面底部):

https://github.com/rtomac/robotframework-selenium2library/issues/225

我的软件设置:

  • 谷歌浏览器 31.0.1650.59
  • 硒 2.39.0
  • Selenium2 库 1.5
  • 机器人框架 2.8.3
  • Robot Framework Ride 1.2.2

那么问题出在哪里?

【问题讨论】:

  • 这个问题的解决方案目前似乎像独角兽一样难以捉摸。

标签: google-chrome selenium selenium-webdriver robotframework


【解决方案1】:

我尝试使用 RF 在 Chrome 中设置用户代理,并且在 sn-p 下对我来说工作正常...!

${options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
${userAgent}=  set variable  --user-agent="Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
Call Method    ${options}  add_argument  ${userAgent}
Create WebDriver    Chrome    chrome_options=${options}

【讨论】:

  • 您能否详细说明为什么 Set Variable 方法在这里有效与 Mats 提供的建议。这对我有用,尽管我不完全确定为什么用户代理作为变量起作用而不是作为直接标志/开关参数传递。
【解决方案2】:

经过更多的修改和阅读后,我设法找到了使示例正常运行的方法。

我没有使用${options.add_argument}=,而是使用Call Method ${options} add_argument

${options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
Call Method    ${options}    add_argument    --user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 System/ComputerId
Create WebDriver    Chrome    chrome_options=${options}    
Go To    http://www.useragentstring.com

【讨论】:

    【解决方案3】:

    我也遇到过类似的问题。我尝试运行您的代码,但没有成功。它只是说未定义用户代理。我浏览并遇到了这段代码,但不幸的是用python编写的:

    from selenium import webdriver
    import webbrowser
    from selenium.webdriver.chrome.options import Options
    mobile_emulation = {
        "deviceMetrics": { "width": 360, "height": 640, "pixelRatio": 3.0 },
        "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" }
    chrome_options = Options()
    chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
    driver = webdriver.Chrome(chrome_options = chrome_options)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2015-09-04
      • 2016-03-13
      • 2016-11-25
      • 1970-01-01
      • 2013-05-14
      • 2012-11-01
      • 2013-05-03
      相关资源
      最近更新 更多