Selenium用法列表项的Findelement

时间:2014-02-26 14:00:02

标签: selenium

我需要点击列表项上的元素才能转到下一个屏幕。 该特定元素的Html代码类似于

<ul>
<li id="leftSiderBarForm:tokenNoListId">
<li id="leftSiderBarForm:patientCheckinScreenId">
<li id="leftSiderBarForm:checkedInPagingId">
<li id="leftSiderBarForm:priorRegLink">
<a onclick="if(typeof jsfcljs == 'function')    {jsfcljs(document.forms['leftSiderBarForm'],'leftSiderBarForm:j_id116,leftSiderBarForm:j_id116,regisType,4,registrationCategory,12','');}return false" href="#">Registration</a>
 </li>

我尝试使用f1.findElement(By.partialLinkText("Registration")).click()无法打开locate。

请帮忙

4 个答案:

答案 0 :(得分:0)

试试这个...

f1.findElement(By.LinkText("Registration")).click();

答案 1 :(得分:0)

试试这个......

f1.findElement(By.xpath("\\a[text()='Registration']")).click();

答案 2 :(得分:0)

您是否尝试过等待元素

new WebDriverWait(f1,30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Registration"))).click();

答案 3 :(得分:0)

有可能,还有另一个文本注册可用的链接,但它可能是隐藏的,也可能没有做你期望的事情。无论如何,试着确保你得到正确的元素。

您可以尝试(来自@ user3283976的示例,但以正确的方式削减):

f1.findElement(By.xpath("//a[text()='Registration']")).click();

或者

//li[@Id='leftSiderBarForm:priorRegLink']/a

或者

//a[@contains(@onclick, "registrationCategory")]  // make sure that contains is unique

此外,当使用双引号并且您的字符串中有双引号时,请不要忘记将它们转义。即:

f1.findElement(By.xpath("//a[@contains(@onclick, \"registrationCategory\")]")