Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium和Java单击登录按钮/链接数据testid_Java_Selenium Webdriver_Xpath_Css Selectors_Webdriverwait - Fatal编程技术网

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

如何使用Selenium和Java单击登录按钮/链接数据testid,java,selenium-webdriver,xpath,css-selectors,webdriverwait,Java,Selenium Webdriver,Xpath,Css Selectors,Webdriverwait,我正在尝试单击“登录”,但我的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>

我正在尝试单击“登录”,但我的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(通过.cssSelector(“[data testid='switch-to-login'))。单击();

  • driver.findElement(By.xpath(//span[@data testid='switch-to-login'))。单击();

  • driver.findelelement(通过.cssSelector(“/.css-dip6gw-link-link-FormFooter”)。单击();


  • 还有其他方法吗?

    所需的元素是动态元素,因此要定位该元素,您必须引导WebDriverWait使该元素可单击,并且您可以使用以下任一方法:

    • css选择器

      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();
      

    所需元素是一个动态元素,因此要定位该元素,您必须引导WebDriverWait使该元素可单击,并且您可以使用以下任一方法:

    • css选择器

      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();
      

    Hello DebanjanB-cssSelector方法似乎奏效了。非常感谢。你太棒了。Hello DebanjanB-cssSelector方法似乎奏效了。非常感谢。你太棒了。