Как нажать на кнопку «Войти» / ссылку на data-testid, используя Selenium и Java - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь нажать «Войти», но мой код Selenium не работает.Ниже приведен HTML-код.

<span class="css-14krylx-text-text-fullPageText-FormFooter">Already have a Times account? 
<span tabindex="0" data-testid="switch-to-login" class="css-dip6gw-link-link-FormFooter">Log in</span></span>

Что я пытался до сих пор и не работал?

  1. driver.findElement(By.cssSelector("[data-testid='switch-to-login'")).click();

  2. driver.findElement(By.xpath("//span[@data-testid='switch-to-login'")).click();

  3. driver.findElement(By.cssSelector("/.css-dip6gw-link-link-FormFooter'")).click();

Есть ли другой подход?

1 Ответ

0 голосов
/ 28 апреля 2019

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

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span[class$='text-text-fullPageText-FormFooter'] span[class$='link-link-FormFooter'][data-testid='switch-to-login']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(@class, 'text-text-fullPageText-FormFooter')]//span[contains(@class, 'link-link-FormFooter') and text()='Log in']"))).click();
    
...