我正在尝试单击“登录”,但我的 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>到目前为止我尝试了什么但没有奏效?driver.findElement(By.cssSelector("[data-testid='switch-to-login'")).click();driver.findElement(By.xpath("//span[@data-testid='switch-to-login'")).click();driver.findElement(By.cssSelector("/.css-dip6gw-link-link-FormFooter'")).click();还有其他方法吗?
1 回答

慕丝7291255
TA贡献1859条经验 获得超6个赞
所需元素是动态元素,因此要定位元素,您必须诱导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();
添加回答
举报
0/150
提交
取消