加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Selenium更改eBay页面内容/ DOM的最简单方法

发布时间:2020-12-15 21:31:23 所属栏目:百科 来源:网络整理
导读:Selenium显然不是为了允许你修改浏览器页面的DOM而设计的,但我偶尔需要动态插入 HTML元素. 在这个例子中:我使用Firefox和Selenium IDE来记录eBay上的拍卖列表,但我注意到它无法处理大量的JScripted拍卖内容控件并且没有为这些元素记录任何内容. 如果我关闭e
Selenium显然不是为了允许你修改浏览器页面的DOM而设计的,但我偶尔需要动态插入 HTML元素.

在这个例子中:我使用Firefox和Selenium IDE来记录eBay上的拍卖列表,但我注意到它无法处理大量的JScripted拍卖内容控件并且没有为这些元素记录任何内容.

如果我关闭ebay网站的JavaScript,第一个拍卖条目页面的简单版本就会被打破(它缺少确认PayPal作为付款选项所需的隐藏输入元素).

所以,我目前的选择是…… a)弄清楚如何与Selenium的花哨JScript HTML编辑器控件进行交互,或b)将新元素插入DOM.

有没有人有任何建议,最好是在C#,因为我在Windows控制台应用程序下自动执行此操作?如果有人拥有代码,也可以接受Selenium User-Extensions.

解决方法

到目前为止我找到了一个解决方案,所以我认为最好分享它以供审查/改进.

Selenium允许你到extend its behavior with a user-extensions.js file.

例如,这会在Selenium中创建一个新的insertHtml命令:

Selenium.prototype.doInsertHtml = function(locator,text){
    var element = this.page().findElement(locator);
    var innerHTML = text + element.innerHTML;
    element.innerHTML = innerHTML;
}

对于Selenium IDE使用,您只需通过IDE本身的选项菜单包含扩展文件.下次启动IDE时,它会自动提供任何新命令(来自用户扩展文件).

随着文档页面地址的更改,我可能会再次复制以下相关部分:

扩展硒

扩展Selenium,添加自己的动作,断言和定位策略可以非常简单.这是通过向Selenium对象原型和PageBot对象原型添加方法使用javascript完成的.在启动时,Selenium将自动查看这些原型上的方法,使用名称模式识别哪些是动作,断言和定位器.

以下示例尝试说明如何使用javascript扩展Selenium.

操作

Selenium原型上的所有doFoo方法都被添加为动作.对于每个动作foo,还有一个动作fooAndWait已注册.动作方法最多可以使用2个参数,这些参数将在测试中传递第二和第三列值.

示例:向Selenium添加“typeRepeated”操作,该操作将文本两次键入文本框.

Selenium.prototype.doTypeRepeated = function(locator,text) {
    // All locator-strategies are automatically handled by "findElement"
    var element = this.page().findElement(locator);

    // Create the text to type
    var valueToType = text + text;

    // Replace the element text with the new text
    this.page().replaceText(element,valueToType);
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读