-1

我正在尝试使用href.

<a class="compliance-documents-link-text" target="_blank" href="api/Document/GetDocumentByType/25194300-f620-4cc9-a375-419b1ebfe729/1">
<span>Acceptance Criteria</span>
</a>

我必须使用href="api/Document/GetDocumentByType/25194300-f620-4cc9-a375-419b1ebfe729/1",因为我需要区分都有接受标准但文档链接不同的不同产品。

我目前有:

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//a[@href ='api/Document/GetDocumentByType/8d844ee3-b9cc-4d5c-87ee-8363bf46164a/1']")));

但它无法定位元素。

4

2 回答 2

1

您的 XPATH 不正确。

在您的代码中,您的 href 值末尾有 '419b1ebfe729/14' ,而您在最后提到它为 '419b1ebfe729/1' 。

于 2019-11-14T13:03:52.600 回答
0

所需的元素是一个动态元素,因此要定位并click()在该元素上您必须诱导WebDriverWait并且elementToBeClickable()您可以使用以下任一Locator Strategies

  • xpath 1:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='compliance-documents-link-text' and starts-with(@href, 'api/Document/GetDocumentByType/')]//span[text()='Acceptance Criteria']"))).click();
    
  • xpath 2:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='compliance-documents-link-text' and starts-with(@href, 'api/Document/GetDocumentByType/')][./span[text()='Acceptance Criteria']]"))).click();
    
于 2019-11-14T14:34:38.227 回答