无法点击链接

时间:2015-09-30 08:15:22

标签: selenium-webdriver

我一直在尝试点击我的应用程序中的链接,但是控件无法点击我使用的任何定位器的链接。我使用Selenium IDE和javascript测试所有定位器,然后在脚本中使用它们,在运行测试之前一切正常。我设法识别并点击链接:  @FindBy(css ="/html/body/div[4]/div/div/div[2]/div[1]/a/strong")但我第二次运行测试,但未能点击相同的链接。

见下面的html代码:

<div class="container container-outer">
   <div class="row-fluid long-text-fitted content-container" id="page-content-container">
      <div class="span12">
         <div class="row-fluid container-alert">
         </div>
         <div class="left-side-spacer-layout right-side-spacer-layout" id="page-content">
            <div class="button-spacer" id="breadcrumb-content">
               <a href="/shopping/marketplace/landingPage">
                  <strong>< Back to Search Results</strong>
               </a>

3 个答案:

答案 0 :(得分:0)

您应该点击参数。删除#include <stdio.h> int main(void) { const char * str = "10 202 3215 1"; int i = 0; unsigned int count = 0, tmp = 0; printf("%s\n", str); while (sscanf(&str[count], "%d %n", &i, &tmp) != EOF) { count += tmp; printf("number %d\n", i); } return 0; } 属性。

strong

答案 1 :(得分:0)

使用绝对Xpath不是一个好主意。正如你所说它是第一次工作,那么在点击它之后你的DOM结构可能会发生变化

您可以尝试使用以下xpath:

driver.findElement(By.xpath("//strong[contains(.,'< Back to Search Results')]")).click();

如果仍然无法正常工作,您应该尝试单击使用JavascriptExecutor,因为它直接在HTML DOM上工作。您可以根据自己的方便在下面的代码中找到元素:

WebElement element=driver.findElement(By.xpath("//strong[contains(.,'< Back to Search Results')]"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

答案 2 :(得分:0)

我会避免使用XPath,尤其是从HTML标记开始的XPath。这使得测试非常脆弱。我建议使用如下的CSS选择器。

driver.findElement(By.cssSelector("#breadcrumb-content > a")).click();

CSS选择器会读取A标记,该标记是ID(#)为breadcrumb-content的元素的子(&gt;)。

详细了解CSS Selectors