我一直在尝试点击我的应用程序中的链接,但是控件无法点击我使用的任何定位器的链接。我使用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>
答案 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。