我试图点击“登录”,但我的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();
还有其他方法吗?
所需元素是一个动态元素,因此要定位您必须引入WebDriverWait的元素才能使元素可单击,您可以使用以下任一Locator Strategies:
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();