问题标签 [webautomation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
523 浏览

ajax - 使用 internetexplorer 对象等待 ajax 响应的正确方法是什么?

我试图将文件上传到共享点库,我的代码无法正确检测 ie 是否仍在等待 ajax 响应。这样做的正确方法是什么?

其余代码已执行,但尚未显示上传表单。如何等待表单的显示?

我也试过这个(应该等到找不到上传表单的按钮),但它永远不会结束......


更新:我想我发现了问题:表单在 iframe 中打开:

但是现在,如何获得好的帧数?

此外,我似乎可以使用 getElementsByTagName 访问框架内容,但不能使用 getElementById ....?我仍然不明白为什么。:

0 投票
1 回答
5184 浏览

ruby - 如何使用 watir-webdriver 选择下拉菜单项

我正在使用 watir-webdriver 来自动化和测试应用程序。在此过程中,我需要单击下拉菜单并选择一个值,但是 watir 似乎无法选择该项目。请帮忙?

我的代码:

HTML:

我正在尝试选择网站要求的月份、年份和性别。谢谢你的帮助 :)

0 投票
3 回答
766 浏览

webautomation - 为什么我们需要 API 自动化?

作为开发的初始阶段,我们需要执行 API,但为什么在产品上线后需要 API 自动化。有没有什么具体原因。

因为功能自动化应该足以跟踪网站的功能。

功能测试与 API 测试有何不同?

0 投票
2 回答
228 浏览

webautomation - 海狸鼠冷冻应用

我正在使用 Coypu 尝试一个非常简单的代码,但我的应用程序只是冻结而没有任何异常。

我已经设置了一个新的 C# 项目并使用 nuget 安装了 Coypu,应用程序 bin 文件夹似乎也包含所有必要的文件:

  • chromedriver.exe(已下载
  • 海狸鼠.dll
  • WebDriver.dll
  • WebDriver.Support.dll。

样本:

0 投票
3 回答
596 浏览

selenium - 如何自动化嵌入网页的 Windows 屏幕?

我有一个 msi 安装程序,安装后会打开配置屏幕。在开始配置之前,我需要输入我的登录凭据。现在,此登录屏幕将在一个嵌入了网页的窗口中打开。我需要自动化这个登录屏幕来输入用户名和密码。

在下图中,它是 Windows 屏幕。一个带有红色边框的是一个窗口窗格,里面是一个网页,您可以在其中看到一个输入凭据的字段。当我使用 UISPY 看到这个时,当指向窗格内时,我可以在“值”字段中看到一个 URL。

如果我使用 UI 自动化,它无法检测到网页。如果我使用硒,它无法检测到 Windows 屏幕。我该如何处理这种情况。任何建议都会有很大帮助。

在此处输入图像描述

0 投票
1 回答
294 浏览

html - 如何使用 watir webdriver 下载?

这是他们网站上的代码,但我不明白该怎么做。我对 Ruby 还是很陌生。

我正在尝试将当前 url 下载为 .html 文件,让浏览器转到该文件。尽你所能,请帮忙,谢谢:)

0 投票
0 回答
1512 浏览

internet-explorer - Powershell 方法等待 DOM 对象被加载

我正在尝试为 IE 自动化创建一个 powershell 脚本。我已经创建了 IE 对象并导航到所需的页面。

当页面托管在 Intranet 上时,它会要求弹出 Windows 身份验证,一旦身份验证完成,它就会打开该页面。所以在执行下一条语句之前,我必须等到页面完全加载(进入 Windows 身份验证后)。所以我使用了以下方法:

但不幸的是,一旦使用 Windows 身份验证对话框弹出 IE 状态显示为已完成。虽然没有加载 DOM 对象(请在下面找到 IE 状态的屏幕截图,当我们弹出进行身份验证时)

即弹出期间的状态

所以我担心有没有办法测试 IE 绿条(图中的那个)来检查页面加载的状态?我已经测试过:

但这对我不起作用。那么除此之外还有什么方法可以测试页面加载吗?

注意:我已经解决了测试页面加载后出现的一些字符串并休眠直到它不存在但我正在寻找更健壮和基于 IE 对象的方法。

0 投票
1 回答
96 浏览

ruby - 如何让我的脚本循环播放?

我在我的脚本登录并转到浏览器 url 的地方有它,但是当它退出当前网页时,它只是坐在那里并且不会重新启动循环。我怎样才能让循环实现它的完成并重新启动?

脚本完成后,它只位于网页上...我正试图让它再次回到开头...您会认为它会采用每个名称,传递并返回到开始的 url。谢谢你的帮助。

0 投票
1 回答
13734 浏览

selenium - Selenium Webdriver vs Mechanize

我有兴趣为我经常访问的网站以某些形式自动输入重复数据。到目前为止,我所查找的能够以无头方式为此提供支持的工具可能是 Selenium WebDriver 和 Mechanize。

我的问题是,使用一次与另一次是否存在根本的技术差异?Selenium 主要用于测试。我还注意到有些人用它来做我正在寻找的事情,那就是自动化数据输入。在这种情况下,测试成为第二个好处。

是否有理由不使用 Selenium 来完成我想通过 Mechanize 做的事情?没关系,这两种工具都可以使用吗?

我不是在问哪个更好,我在问哪个是适合这项工作的工具。也许我不理解每个工具的目的背后的前提。

0 投票
0 回答
2412 浏览

c# - 预先不知道 Uris 的多线程 C# Selenium WebDriver 自动化

我需要同时执行一些 webdrivers 操作,但我不确定如何执行此操作。

我在这里要问的是:

  1. 实现这一目标的正确方法是什么?
  2. 我得到异常的原因是什么(如下所示)

经过一番研究,我最终得到:

1 . 我看到人们这样做的方式(以及我在使用 API 之后,在搜索之前最终使用的方式)是循环遍历我的 WebDriver 手头的窗口句柄,并执行切换到和退出我想要的窗口句柄处理,完成后关闭它。

2 . Selenium Grid 对我来说似乎不是一个选择 - 我错了还是它用于并行处理?由于我在一台计算机上运行所有内容,因此对我来说毫无用处。


在尝试第一个选项时,我有以下场景(下面提供了一个代码示例,我跳过了不相关/重复本身的内容(我添加了 3 个点:

我有一个 html 页面,有几个提交按钮,堆叠。

单击它们中的每一个将打开一个新的浏览器/选项卡(有趣的是,使用 ChromeDriver 打开选项卡,而 FirefoxDriver 为每个打开单独的窗口。)

附带说明:我无法事先确定每个提交的 uri(它们必须由 javascript 确定,此时,让我们假设我想处理对客户端代码一无所知的所有事情。

现在,在遍历所有提交按钮并在相应元素上发出 webElement.Click() 之后,选项卡/窗口打开。代码流以创建要执行的任务列表,每个新选项卡/窗口一个。

问题是:由于所有任务都依赖于同一个 webdriver 实例来切换到窗口句柄,看来我需要添加资源共享锁/控制。我不确定我是否正确,因为在搜索多线程 Web 驱动程序示例时,我没有看到锁/资源访问控制的提及。

另一方面,如果我能够事先确定选项卡/窗口 uri,我将能够跳过达到这一点所需的所有自动化步骤,然后为每个线程创建一个 webDriver 实例,通过Navigate().GoToUrl()将是简单的。但这看起来像一个僵局!我没有看到 webDriver 的 API 在不执行切换的情况下提供对新打开的选项卡/窗口的任何访问。如果我不必重复所有将我引导到当前窗口的自动化步骤,我只想切换!

...

无论如何,我不断收到异常:

Element belongs to a different frame than the current one - switch to its containing frame to use it

块内ToDictionary()

我显然在 chrome 的控制台中检查了我所有的选择器都返回了结果。