猿问

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

我正在尝试单击“登录”,但我的 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();

还有其他方法吗?


繁星点点滴滴
浏览 250回答 1
1回答

慕丝7291255

所需元素是动态元素,因此要定位元素,您必须诱导WebDriverWait元素可点击,您可以使用以下任一定位器策略:cssSelector:new&nbsp;WebDriverWait(driver,&nbsp;20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span[class$='text-text-fullPageText-FormFooter']&nbsp;span[class$='link-link-FormFooter'][data-testid='switch-to-login']"))).click();xpath:new&nbsp;WebDriverWait(driver,&nbsp;20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(@class,&nbsp;'text-text-fullPageText-FormFooter')]//span[contains(@class,&nbsp;'link-link-FormFooter')&nbsp;and&nbsp;text()='Log&nbsp;in']"))).click();
随时随地看视频慕课网APP

相关分类

Java
我要回答