如何搜索文本并填写/点击与Selenium的链接?
问题描述:
这里的交易:如何搜索文本并填写/点击与Selenium的链接?
有没有办法来搜索输入名称或类型女巫是不是精确的,并填写它?例如,我想用我的电子邮件填写名称电子邮件的任何输入,但我可能有一些名为电子邮件123,电子邮件,电子邮件等输入...有没有办法做一些事情,如*电子邮件* ?
我怎样才能点击一个链接验证一些文本,可能在链接上,或上面的链接,或关闭,或在类等?
PS:我使用的是硒的IDE与Firefox
答
您可以使用XPath的东西,如//input[contains(@name,'email')
找到它。如果你有这样的网页上这将是值得移动测试到您最喜爱的编程语言,然后做
emailInstances = sel.get_xpath_count("//input[contains(@name,'email')]")
for i in range(int(emailInstances)):
sel.type("//input[contains(@name,'email')]["+ i + 1 +"]","[email protected]address.tld")
答
多个实例XPath的工作原理以及与上面的解决方案是好的。如果您正在尝试测试旧版本的IE,您还可以使用JavaScript注入。我发现它非常快,但调试起来可能有点麻烦。我其实没有检查,如果下面的作品,但希望它给你的,你可以做些什么的想法:
String javaScript = "_sl_enterEmailStr = function(parentObj,str) { "+
" var allTags = parentObj.getElementsByTagName('input'); "+
" for (var i = 0; i < allTags.length; ++i) { "+
" var tag = allTags[i]; "+
" if (tag.name && tag.type && tag.type === 'text' "+
" && tag.name.match(/email/)) { "+
" tag.value = str; "+
" } "+
" } "+
"}; "+
"_sl_enterEmailStr(this.browserbot.getCurrentWindow().document "+
" ,'[email protected]'); ";
mySelenium.getEval(javaScript);
我发现JavaScript注入正则表达式允许我做伟大的事情的动态输入字段。请注意,您可以使用findElement()来更详细地了解您在何处查找标签。
关于点击链接并获取文本,这些都是简单的click()和getText()操作,可以通过正确的定位器完成。我会检查出硒API。例如,这里是到Java one for 1.0b2的链接。