Firefox 如何使用Selenium搜索文本并填充/单击链接?
交易如下: 有没有办法搜索输入的名称或类型不精确并填充 例如,我想用我的电子邮件填写任何输入,但我可能有一些输入名为email-123、emailemail、email等。。。有没有一种方法可以做类似于*电子邮件*的事情 我怎样才能点击一个链接来验证一些文本,这些文本可能在链接上,或者在链接上方,或者关闭,或者在课堂上等等Firefox 如何使用Selenium搜索文本并填充/单击链接?,firefox,selenium,Firefox,Selenium,交易如下: 有没有办法搜索输入的名称或类型不精确并填充 例如,我想用我的电子邮件填写任何输入,但我可能有一些输入名为email-123、emailemail、email等。。。有没有一种方法可以做类似于*电子邮件*的事情 我怎样才能点击一个链接来验证一些文本,这些文本可能在链接上,或者在链接上方,或者关闭,或者在课堂上等等 ps:我在firefox上使用selenium ide您可以使用Xpath查找类似于//input[contains(@name,'email')的内容。如果页面上有多个这样
ps:我在firefox上使用selenium ide您可以使用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@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 "+
" ,'myemail@mydomain.org'); ";
mySelenium.getEval(javaScript);
String javaScript=“\u sl\u enterEmailStr=函数(parentObj,str){”+
“var allTags=parentObj.getElementsByTagName('input')+
“对于(var i=0;i
我发现使用正则表达式注入JavaScript可以对动态输入字段做很多事情
关于单击链接和获取文本,这些都是简单的click()和getText()操作,只要使用适当的定位器,就可以完成。我将查看selenium API。例如,下面是指向的链接