Как найти элемент в селен для HREF - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь найти элемент для этого:

<a ng-if="showLink &amp;&amp; customer.partnerType == 2 &amp;&amp; customer.isDirectCustomer" class="cp_text_link ng-binding ng-scope" ng-href="/?orgId=77bc101729ad844e39c4c1e17231c7e4&amp;orgName=Attunix" href="/?orgId=77bc101729ad844e39c4c1e17231c7e4&amp;orgName=ABC">
  ABC
</a>

Я пробовал XPath и CssSelector, но он не смог найти элемент.Может кто-нибудь, пожалуйста, помогите мне найти элемент TIA

Ответы [ 4 ]

2 голосов
/ 25 мая 2019

Просто используйте текст:

driver.findElement(By.xpath("//a[contains(text(),'abc')]"));
1 голос
/ 25 мая 2019

Довольно сложно найти точный локатор, не видя полного кода страницы, вы пытаетесь автоматизировать.

Из того, что я вижу, имеет смысл придерживаться текста ABC, поэтому попробуйте следующее:

  1. Текст частичной ссылки

    driver.findElement(By.partialLinkText("ABC"));
    
  2. Или эквивалент XPath

    driver.findElement(By.xpath("//a[contains(text(),'ABC')]"));
    
0 голосов
/ 27 мая 2019

Требуемый элемент является элементом Angular , поэтому для поиска и вызова элемента click() необходимо вызвать элемент WebDriverWait , чтобы элемент можно было нажимать и вы можете использовать любую из следующих Java на основе Стратегии локатора :

  • partialLinkText

    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.partialLinkText("ABC"))).click();
    
  • cssSelector:

    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.cp_text_link.ng-binding.ng-scope[ng-href*='orgId'][href$='ABC']"))).click();
    
  • xpath

    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='cp_text_link ng-binding ng-scope' and contains(@ng-href, 'orgId')][contains(@href, 'ABC')]"))).click();
    
0 голосов
/ 27 мая 2019

Попробуйте использовать класс driver.findElement (By.cssSelector ( "a.cp_text_link"))

...