如何搜索文本并填写/点击与Selenium的链接?

如何搜索文本并填写/点击与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的链接。