当前位置: 首页 > 面试题库 >

使用Selenium WebDriver自动在chrome:// extensions页面上单击按钮

韩嘉祯
2023-03-14
问题内容

我正在尝试编写一个自动化测试,该自动化测试将自动执行更新Google
chrome扩展程序的过程。我不知道自动执行此操作的另一种方法,因此这是我当前正在尝试执行的操作:

  1. 打开chrome扩展程序页面(据我所知,除非我缺少某些内容,否则这只是一个html页面)。

  2. 点击“更新扩展名”按钮

这是我尝试打开chrome扩展页面的尝试:

IwebElement UpdateButton = driver.findelement(By.Id("update-extensions-now"));
UpdateButton.Click();

由于某种原因,按钮单击未注册。我尝试了其他一些定位器,例如CSS路径和Xpath,但是它们也不起作用。另外,当我调试该测试时,它可以顺利通过,因此我知道这对我的任何定位器都不是问题。我(作为测试)试图自动点击此页面上的其他元素,这是同样的问题。我根本无法在chrome://
extensions页面上处理任何元素。

是否有人遇到过这种情况或对发生的事情有任何想法?


问题答案:

您可以使用Chrome扩展程序API自动更新所需的扩展程序。在默认的Google Chrome浏览器中找到文件“ manifest.json”

C:\Users\*UserName*\AppData\Local\Google\Chrome\User Data\Default\Extensions

在这里找到您的扩展程序的更新URL:

{
  "name": "My extension",
  ...
  "update_url": "http://myhost.com/mytestextension/updates.xml",
  ...
}

Google服务器返回的XML如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='yourAppID'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

appid 扩展或应用程序ID,基于打包中所述的公钥哈希值生成。您可以转到扩展程序页面(chrome://
extensions)找到扩展程序或Chrome应用的ID。

代码库 指向.crx文件的URL。

版本 客户端使用,以确定它是否应该通过下载代码库指定的.crx档案。它应与.crx文件的manifest.json文件中的“
version”值匹配。

更新清单XML文件可以通过包含多个元素来包含有关多个扩展名的信息。

另一个选择是使用 --extensions-update-frequency
命令行标志来设置更频繁的间隔(以秒为单位)。例如,要使检查每45秒运行一次,请像下面这样运行Google Chrome:

chrome.exe --extensions-update-frequency=45

请注意,这会影响对所有已安装的扩展程序和应用程序的检查,因此请考虑此操作对带宽和服务器负载的影响。您可能希望暂时卸载除要测试的设备以外的所有设备,并且不应在正常使用浏览器时启用此选项的情况下运行。

更新每个扩展的请求将是:

http://test.com/extension_updates.php?x=id%3DyourAppID%26v%3D1.1
您可以在exntesions开发人员网站上找到更详细的信息: https
//developer.chrome.com/extensions


 类似资料:
  • 问题内容: 我需要自动单击网页中的任何“添加”按钮,如下所示: “ https://groceries.asda.com/search/yoghurt ” 但是,页面中的“添加”按钮都没有名称或ID。所以我不能使用Selenium包中的命令。 谁能帮我? 问题答案: 要单击特定产品的任何特定按钮,可以编写如下方法: 现在,您可以单击传递其标题的任何按钮,如下所示:

  • 我用Webview创建了一个应用程序,需要自动按下按钮 返回null。 任何帮助都将不胜感激!

  • 我正在尝试从政府网站自动下载表单数月的过程。它要求我登录到我的帐户,然后单击一些按钮继续。出于某种原因,我不想使用IE自动化,因此,我选择通过Excel VBA使用硒来自动化Chrome。我可以登录,但是,登录后我无法单击按钮。到目前为止,我的VBA代码如下 - 在此之后,我想单击一个按钮,该按钮的HTML是 请注意,还有其他按钮具有相同的类。请指导我如何单击此按钮?

  • 我在Selenium 1(又名Selenium RC)中编写了以下代码,用于使用java滚动页面: Selenium 2(WebDriver)中的等效代码是什么?

  • 我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:

  • 问题内容: 我需要自动单击网页中的任何“添加”按钮,如下所示: “ https://groceries.asda.com/search/yoghurt ” 但是,页面中的“添加”按钮都没有名称或ID。所以我不能使用Selenium包中的命令。 谁能帮我? 问题答案: 要单击特定产品的任何特定按钮,可以编写如下方法: 现在,您可以单击传递其标题的任何按钮,如下所示: