【问题标题】:selenium: clicking on first link of the results pageselenium:点击结果页面的第一个链接
【发布时间】:2011-08-31 08:32:49
【问题描述】:

我正在测试一个类似于 Google 搜索的页面,您可以在提供的文本框中输入搜索词,然后单击“搜索”,下一页会返回一堆与您的搜索词匹配的结果。这些结果都是文档(doc 文件)的链接,并且是随机的,具体取决于您搜索的文本。我在单击第一个结果链接时遇到问题。我使用 selenium IDE 记录了这些步骤,但是当我运行测试时,它在必须单击第一个结果链接的地方失败。我得到的错误是:

Selenium.SeleniumException: ERROR: Command execution failure. Please search the forum at http://clearspace.openqa.org for error details from the log window.  The error message is: Permission denied

我试过这两种方法:

selenium.Click("xpath=//html/body/form/div[2]/div[3]/div[3]/table/tbody/tr/td[2]/span/a/");
selenium.Click("xpath=//span[contains(@class,'ResultList_Title_Link')][1]/a");

当我右键单击第一个结果链接并执行检查元素时,我看到:

<w_lit_documenttitle wid="82e0-9888a350e66b">MEMORANDUM OF <span style="background-color:#FFFF66;color:#333333;font-weight:bold" name="wlCitedDoc" id="wlCitedDoc">LAW</span> COMPLAINT</w_lit_documenttitle>

上面的 Xpath 是:

/html/body/form/div[2]/div[3]/div[3]/table/tbody/tr/td[2]/span/a/w_lit_documenttitle

【问题讨论】:

    标签: c# selenium selenium-rc selenium-ide


    【解决方案1】:

    您可以通过 id 或 another locator 找到链接,而不是在 Click 方法中传递 xpath 定位器?如果您以后必须更改它,它会变得不那么复杂并且更具可读性。

    【讨论】:

      【解决方案2】:

      同意@Ken Pespisa。 我偏向于使用 CSS 作为标识符。提取搜索返回的 3-4 个链接的 HTML(使用 Firebug),然后识别一些共同属性。然后,您可以使用该属性构造 CSS 标识符。如果您只需单击第一个链接,通用属性就可以了。对于特定链接,您必须先声明它的存在,然后单击它。

      这是一个使用示例 HTML 的 CSS 标识符示例:

      selenium.click("css=span#wlCitedDoc[name=wlCitedDoc]");
      

      【讨论】:

        【解决方案3】:

        由于错误消息是“权限被拒绝”,您可能应该尝试找出哪个元素真正定义了您的链接。使用 Selenium 的 click 方法,您可以点击诸如 元素和按钮等可点击的东西,但您必须指定 它们 而不是元素内的某些文本部分。

        【讨论】:

          【解决方案4】:

          我相信您必须以动态方式执行此操作,正如您所说的点击第一个链接。

          在结果页面加载所有结果作为链接后, // 如果你要点击的每个链接都定义了 id

          String[] 链接 = selenium.getAllLinks();

          for(字符串链接:链接)

          selenium.click(链接);

          //如果没有定义id

          selenium.getEval("window.document.getElementsByTagName('a')[0].click()"); //这是点击第一个链接

          我希望这就是你要找的东西

          【讨论】:

          • 谢谢苏达桑。这似乎是我想要的。我会试一试。再次感谢!
          猜你喜欢
          • 1970-01-01
          • 2012-08-15
          • 1970-01-01
          • 1970-01-01
          • 2019-03-13
          • 1970-01-01
          • 1970-01-01
          • 2021-05-05
          • 2014-09-13
          相关资源
          最近更新 更多