我需要点击列表项上的元素才能转到下一个屏幕。 该特定元素的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。
请帮忙
答案 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\")]")