Firefox 如何使用Selenium搜索文本并填充/单击链接?

Firefox 如何使用Selenium搜索文本并填充/单击链接?,firefox,selenium,Firefox,Selenium,交易如下: 有没有办法搜索输入的名称或类型不精确并填充 例如,我想用我的电子邮件填写任何输入,但我可能有一些输入名为email-123、emailemail、email等。。。有没有一种方法可以做类似于*电子邮件*的事情 我怎样才能点击一个链接来验证一些文本,这些文本可能在链接上,或者在链接上方,或者关闭,或者在课堂上等等 ps:我在firefox上使用selenium ide您可以使用Xpath查找类似于//input[contains(@name,'email')的内容。如果页面上有多个这样

交易如下:

有没有办法搜索输入的名称或类型不精确并填充

例如,我想用我的电子邮件填写任何输入,但我可能有一些输入名为email-123、emailemail、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。例如,下面是指向的链接