-1

我是 selenium 的新手,正在尝试为 html 代码编写链接文本代码

<a href="repopulateUser.jsp?authAuthSessionId=7DD74346650647B7BA9ED08C1ABAE66D&amp;roleId=bc95f1f2-9ccd-11e8-9a37-0050568817ef&amp;ROLE=Programmer&amp;ROLECODE=PROGRAMMER&amp;roleGrpId=f4c11ca7-9c1b-11e8-9a37-0050568817ef&amp;moduleId=cb475927-7eb1-11e8-97d0-0050568817ef&amp;studyId=null" class="labels">Programmer</a>

代码试用:

driver.findElement(By.linkText("Programmer")).click();   

上面的代码不起作用,有什么问题吗?

4

1 回答 1

0

如果带有文本Programmer的元素在 HTML 中是唯一标识的,则linkText应该可以工作。由于该元素是启用了JavaScript的元素,因此对于click()您需要使用的元素elementToBeClickable(),您可以使用以下Locator Strategy

  • 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();
    
于 2019-09-09T09:44:15.120 回答