如何使用Selenium和Java单击Log In按钮/链接data-testid

问题描述 投票:1回答:1

我试图点击“登录”,但我的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();

还有其他方法吗?

java selenium-webdriver xpath css-selectors webdriverwait
1个回答
0
投票

所需元素是一个动态元素,因此要定位您必须引入WebDriverWait的元素才能使元素可单击,您可以使用以下任一Locator Strategies

  • cssSelectornew 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();
  • xpathnew 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();
© www.soinside.com 2019 - 2024. All rights reserved.