使用Selenium Webdriver找不到特定的标签

时间:2014-02-26 14:09:33

标签: java selenium xpath

HTML代码:

<a id="id47" title="textA"
onclick="var wcall=wicketAjaxGet('?wicket:interface=:1blablabla')" 
href="#">

<span class="icon" style="background-image: url('folder/background.png')"></span>

<span>textB</span>

我想使用Selenium webdriver找到并点击上面的图标。通常,我会使用ID执行此操作,但不幸的是,程序不断更改这些ID,因此我必须使用标题(textA)或Span(textB)来定位元素

我想出了以下内容:

public void performclick() throws Throwable {
    Thread.sleep(5000);
    driver.findElement(By.xpath("//span[contains(text('textB')]")).click();
}

public void performclick() throws Throwable {
    Thread.sleep(5000);
    driver.findElement(By.xpath("//*[contains(text('textA')]")).click();
}

以及对这些的任何偏差。 每次我运行场景时,它都没有回复。我没有想到什么?

2 个答案:

答案 0 :(得分:1)

你也可以试试cssSelectors,

css = a[title='textA']

如果您的ID的某些部分保持不变,例如,如果id47更改为id48id200等等,您可以使用包含(,即ie) , * )或以(,即 ^ )开头

css = a[id*='id'][title='textA']

css = a[id^='id'][title='textA']

对于span(textB),以下内容适用于

css = span.icon + span

此处 + 用于定位以下兄弟

答案 1 :(得分:0)

尝试:

//*[@title='textA']

//*[text()='textB']