我是硒的新手,并试图为 html 代码编写链接文本代码
<a href="repopulateUser.jsp?authAuthSessionId=7DD74346650647B7BA9ED08C1ABAE66D&roleId=bc95f1f2-9ccd-11e8-9a37-0050568817ef&ROLE=Programmer&ROLECODE=PROGRAMMER&roleGrpId=f4c11ca7-9c1b-11e8-9a37-0050568817ef&moduleId=cb475927-7eb1-11e8-97d0-0050568817ef&studyId=null" class="labels">Programmer</a>
代码试用:
driver.findElement(By.linkText("Programmer")).click();
上面的代码不起作用,有问题吗?
如果带有文本程序员的元素在HTML中唯一标识,则linkText应该可以工作。仍然因为该元素是启用 JavaScript 的元素,因此要click()
您需要使用elementToBeClickable()
的元素,您可以使用以下定位器策略:
-
linkText
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Programmer"))).click();
另类
作为替代方法,您还可以使用以下任一定位器策略:
-
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.labels[href^='repopulateUser']"))).click();
-
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='labels' and starts-with(@href, 'repopulateUser')][text()='Programmer']"))).click();