问题标签 [browser-automation]
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.
linux - 猞猁与 javascript
所以我用 PHP 写了一个脚本,需要 javascript 来运行它。我很难找到有关如何使用一些 linux 工具同时使用 php 运行 javascript 以使其自动运行的解决方案(因为在我的浏览器中运行它不是一种选择,我需要它是一个 crontab )。使用“php”命令也不是一个选择,因为它不运行 javascript。所以我找到了一个解决方案,它是lynx。
所以这是我的问题:由于某种原因,javascript 在我的浏览器中运行得很好,但在 lynx 中却没有。使用 lynx 只需加载页面,无需任何 javascript 参与。有没有办法在 lynx 中调试 javascript,就像 google chrome 一样,您可以从控制台查看正在发生的事情,这样我就可以找出导致脚本无法在 lynx 中运行的原因?
编辑:
所以显然lynx不支持javascript。在那种情况下,我的问题是,什么是?我需要像浏览器一样运行此脚本,但要从 linux 命令提示符中运行。如果操作系统在这种情况下很重要,我正在运行最新的 Ubuntu。
xpath - Selenium IE 支持使用 XPATH 进行定位器访问
我正在尝试使用 xpath 定位 htmp/jsp Web 元素。我正在使用 Selenium 测试工具及其库来访问 Web 元素 (findElementByXPath())。我不断收到错误,如下所示:
无法使用 Xpath == 找到元素
期待您的来信。
.net - Selenium Webdriver 2.20 .net 客户端,依赖问题?
目前我有一个奇怪的问题,我刚刚开始进行一些验收测试,然后去 NUGet 最新的 Selenium Webdriver。安装得很好,只是写了一个快速测试来证明一切正常:
该项目只是一个使用 .net 4 的默认类库,一切正常,我通过 Resharpers 测试运行程序构建并运行了测试。然后我收到以下错误:
OpenQA.Selenium.WebDriverException:连接到 Firefox 时出错----> System.IO.FileNotFoundException:无法加载文件或程序集“Ionic.Zip,版本=1.9.1.8,文化=中性,PublicKeyToken=edbe51ad942a3f5c”或它的依赖项之一。该系统找不到指定的文件。在 OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() 在 OpenQA.Selenium.Firefox.FirefoxDriver..ctor() 在 --FileNotFoundException 在 OpenQA.Selenium.Firefox.FirefoxExtension.Install(String profileDir) 在 OpenQA.Selenium.Firefox。 FirefoxProfile.InstallExtensions() 在 OpenQA.Selenium.Firefox.FirefoxProfile.WriteToDisk() 在 OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() 在 OpenQA.Selenium.Firefox.FirefoxDriver.StartClient()
我有点困惑,想也许我需要使用 .net 3.5 版本的库,没有运气同样的错误。然后我尝试回到 .net 4 并告诉程序集在属性中使用 SpecificVersion,仍然没有运气。
确认我正在为 x86 构建并且 firefox 安装在默认位置,我什至为 firefox 配置文件提供了一个指向 exe 位置的链接,甚至制作了一个 firefox 二进制文件并告诉在哪里看,仍然没有运气。然后我解雇了 NUGet 版本并从网站上获取了客户端驱动程序二进制文件,同样的问题。
在尝试切换版本并为不同的 CPU 类型构建之后,我没有想法,关于此类问题的记录很少,所以这里有一些其他信息,以防它很有用。
- Windows 7 专业版 64 位
- Visual Studio 2010 高级版(带有 Resharper 6)
- Firefox 11(安装到默认位置)
我尝试使用 Internet Explorer 驱动程序以确保它不是特定于 firefox 的问题,但我得到另一个错误,如下所示:
所以现在我没有想法,到目前为止已经浪费了大约 3 个小时:(
javascript - JavaScript/VBA 自动化:更改 onclick 属性
我正在尝试onclick
使用 VBA 中的自动化从表单上的按钮事件更改函数调用。功能X
已经硬编码到网页中,我无权更改该代码。(该页面是我公司内部的,但我不在那个部门)。
当我的场景适合时,我想X
用一个新的函数替换函数Y
。
我似乎与这个 SO 有类似的问题,但它似乎最指的是从 JS 代码中更改元素属性。我的问题是我需要在 VBA 中这样做,但我不知道如何到达那里。
该站点有大量关于此过程的信息(setAttribute
、getAttribute
等),包括有用的信息:re: 使用一种浏览器与另一种浏览器时的注意事项。我所有的代码都将与 IE(公司提供的)接口,因此无需担心其他浏览器选项。
尝试更改onclick
属性时,VBE 监视面板显示属性发生更改,但其行为与预期不符。更改属性后,单击(通过我的objButton.Click
/自动化objButton.onclick
或实际手动单击按钮)时什么也没有发生。我也在其他属性(即onfocus
)上尝试了这个,结果相同。上面的链接提到 IE 在这方面有一些困难,但我对 JavaScript 并不太熟悉,而且我在遵循指南时遇到了麻烦。
我尝试过的是以下,所有这些都有相同的结果。
选项1:
选项 2:
选项 3:
选项 4:
选项 5:
在尝试这些不同的方法时,我确实注意到 VBE 监视窗口中的onclick
属性类型在尝试强制按钮调用新函数后从其原始类型 Variant/Object 更改为 Variant/String,我觉得这有一些东西与我的问题有关。
有人可以解释一下(如果可能的话)我怎样才能让它工作吗?
firefox - 将当前网页的 HTML 链接复制到剪贴板的 Firefox 扩展,而不仅仅是 URL
情况
我需要自动将 HTML 链接复制到在当前 Firefox 选项卡中查看的当前页面到其他所见即所得编辑器中。这与仅复制 URL 的纯文本不同,也与仅粘贴网页标题的纯文本相同。这也不同于导航到具有指向感兴趣页面的 HTML 链接的其他网页,用鼠标光标选择文本,然后键入 CTRL-C 将其复制到当前操作系统剪贴板(Linux和 Windows,不应该有任何区别)。只有剪贴板的更新是自动化的;从剪贴板粘贴到目标应用程序将手动完成。
所需的用例如下:
- 用户从 Firefox 中浏览到任何网页。
- 用户键入一些与标准 Firefox 内置键绑定不冲突的用户指定键序列。
- 然后,Firefox 将只执行Copy Link Bookmarklet的部分 功能:而不是打开一个新的单独窗口/选项卡并为链接构建和呈现 HTML,然后要求用户在选择链接并将其复制到剪贴板时浪费动作,然后扩展程序将格式化 HTML 本身并将其直接复制到剪贴板中。
- 然后,用户选择下面描述的任何目标并键入 CTRL-V 以粘贴格式化的文本。
- 然后用户将链接视为该目标区域中的链接,并且
看不到任何文字
http://...
例如,如果浏览的网页是http://www.google.com,并且用户单击了用户定义的键序列,并且如果用户将其粘贴到某个 Google 文档中,那么他们在该文档中看到的
不是 http://www.google.com
他们也不会看到Google
,而是会看到您在 Web 浏览器中的 StackOverflow 中阅读此内容时会看到的内容:Google
现在,有 Firefox 扩展程序和书签工具接近了,但它们都没有减少鼠标移动和/或按键开销,这是这种频繁出现的用例中最浪费时间的方面。我对现有扩展的搜索结果没有完全满足我的需求(请参阅下面的研究部分)。因此,我认为我可能需要推出自己的扩展(或修改现有扩展),除非有人可以将我指向提供此功能的现有扩展。
我想到的扩展应该可以在 Linux 或任何版本的 Windows 上运行的 Firefox 版本 11 或更高版本中运行。只需要 Firefox 和合适的 Firefox 扩展,不需要任何其他特殊软件。
粘贴的目标应该是:
- GMail 撰写文本区域
- 谷歌文档
- 微软 Word 文档
- Microsoft Outlook 撰写文本区域。
- 任何其他所见即所得编辑器,例如 Blogger 帖子编辑器。
- 记事本(在这种情况下,仅粘贴网页标题而不是 URL,或者将网页标题和 URL 作为单独的纯文本粘贴;无论哪种方式)。
关于用户指定的键绑定:如果已经有一个扩展完成了上述操作,但没有提供将键绑定绑定到它的能力,那么我希望能够使用keyconfig 扩展扩展来处理该方面。实际上,这甚至可能更可取。我还不知道。
研究
以下是我调查的接近我想要的方法,但并不完全满足需要:
- 黑客复制链接书签将不起作用,因为据我所知,无法从书签更新操作系统的剪贴板,因此我认为需要 Firefox 扩展。
- 在 Firefox 扩展中,如何将富文本/链接复制到剪贴板?
- 3 个 FireFox 插件,用于更轻松地复制链接和锚文本——列出的扩展都没有我想要的,因为它们迫使你使用鼠标右键并向下导航一到两级上下文菜单,这是浪费的动作。
- 复制链接文本 (CoLT) - CoLT 还支持将超链接及其关联文本复制为富文本格式的链接,但它不包括默认键绑定。看起来其他人正试图将 keyconfig 绑定到 CoLT,这可能是一种解决方案。
- Copy URL Plus - 看起来它具有复制到剪贴板的逻辑,但看起来它自 Firefox 1.x 时间框架以来就没有得到维护。
selenium - 如何使用 Selenium 进行模拟重负载的压力测试
我有一个系统要测试,这是一种视频广告分发技术。我需要像 1-2 分钟那样加载每个视频来投放广告。视频在 Flash 客户端中播放,并像在 YouTube 中一样作为 FLV 流进行流式传输。
我只需要通过浏览器测试它的原因——其他所有方法都行不通——是同时对视频流服务器和广告服务器进行压力测试并实时显示广告。
我使用过 Selenium、WatiN、Automation Anywhere 和许多其他自动化工具。但是,当我尝试在我的机器上启动 10000 个浏览器(32GB RAM,16 核 CPU)时,它们都无法完成这项工作。
使用 Selenium,到目前为止,我能够启动最多的 FireFox 实例,但这仍然太低:一半的实例没有运行测试。
对 Selenium 有什么建议吗?
vbscript - Internet Explorer 自动化忙 v/s readystate 属性
我是 vbscript 的新手,在阅读时我发现了一些代码
所以任何人都可以让我知道忙碌property
和readystate
财产之间的区别。
vbscript - 使用 vbscript 保存快照
我是 vbscript 的新手。我想保存使用 vbscript 打开的 Internet Explorer 窗口的 vbscript 拍摄的快照。
加载页面的代码
拍摄快照的代码
保存快照
实际上,先前打开的 ie 窗口具有焦点,并且击键被发送到 ie 而不是绘图。那么是否有任何功能可以执行相反的工作AppActivate
。
selenium - Selenium - 获取属性 HTMLDocument.readyState 的权限被拒绝
我们正在使用 Selenium(用于 Firefox)进行一些自动化,并录制了一个脚本来播放。在提供者进行一些新的更改之前,这一切正常。现在我们得到以下错误,不知道这意味着什么......
任何有浏览器自动化或 Selenium 经验的人都会给出一些提示?
谢谢
htmlunit - 如何使用 HtmlPage 对象获取准确的 HTML(在执行 JS 函数之后)?
我正在使用 Htmlunit(浏览器自动化/测试工具)从 URL 获取网页,为某些 HTML 元素(如 textinput 等)添加值,然后我想使用以下语句自动执行“单击操作:
然后我想在默认浏览器上显示响应。但。我请求(来自 URL)的 HTML 是带有 javascript 函数的 RAW HTML,在执行时会调用一些 Web 服务,然后才会生成确切的 HTML(在浏览器上呈现的 HTML)。
因此,我想知道如何在我的 java 程序中执行这些 JS 函数,以便我可以得到正确的 HTML 元素,我正在寻找..
这是我的代码:
提前谢谢...!!!