当前位置: 首页 > 知识库问答 >
问题:

无法使用selenium webdriver和Java单击登录按钮

水飞掣
2023-03-14

嗨,我正在尝试自动化https://www.nextgenerationautomation.com,但无法使用Selenium 4单击登录/注册按钮

步骤:

    null
public class nextGenAutomationLoginPage extends Base {

    @FindBy(xpath = "(//button[@class='_1YW_5'])[1]")
    WebElement login;

    public nextGenAutomationLoginPage() {
        super();
        PageFactory.initElements(driver, this);
        // TODO Auto-generated constructor stub
    }

    public void clickOnLogin() throws InterruptedException {
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        System.out.println(driver.getTitle());
        // Thread.sleep(2000);
        wait.until(ExpectedConditions.elementToBeClickable(login));
        //wait.until(ExpectedConditions.presenceOfNestedElementLocatedBy(login, By.xpath("//div[@class='_10b1I']") ));
        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("window.scrollBy(0,document.body.scrollHeight)");
        js.executeScript("arguments[0].scrollIntoView();", login);
        login.click();
        //driver.findElement(By.xpath("(//button[@class='_1YW_5'])[1]")).click();
        wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//div[@id='comp-kaoxkn4a1']")));
        String sign = driver.findElement(By.xpath("//div[@id='comp-kaoxkn4a1']/h1/span")).getText();
        System.out.println(sign);
    }

如果我在这里遗漏了什么,请告诉我。

共有1个答案

阚原
2023-03-14

若要,请在具有文本的元素上单击()login/signup,您可以使用以下任何一种定位器策略:

>

  • XPath:

    driver.findElement(By.xpath("//span[text()='Log In / SignUp']")).click();
    

    但是,由于元素是动态元素,因此要单击元素上的(),您需要为ElementTobeclickable()导出WebDriverWait,您可以使用以下任何一种定位器策略:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Log In / SignUp']"))).click();
    
    • NoSuChelementException,Selenium无法定位元素

  •  类似资料:
    • 我有一个带有登录按钮的网页。按钮上有文本“登录”。如何使用测试“登录”点击按钮。

    • 我一直在关注symfony网站上的教程(http://symfony.com/doc/current/security.html)为我的Symfony 3.1项目添加登录名。它可以与HTTP基本身份验证一起工作,但是当我使用这里的教程添加form_登录时(http://symfony.com/doc/current/security/form_login_setup.html)它会一直重定向到登录

    • 我尝试使用这个简单的代码登录,但在我点击登录按钮后,else选项“无效用户名或密码!”总是出现,即使用户名和密码是匹配的 控制器:

    • 我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮

    • 问题内容: HTML代码: 使用类名,我试图单击按钮,但无法单击。 我尝试了以下代码: 问题答案: 您可以尝试通过获取它。据我所记得,这只是一堂课。

    • 我有一个顶部有一些按钮的网站。点击后,会出现一个新的AJAX部分。 我不太熟悉超文本标记语言,但是添加按钮(这个按钮是我的目标)不知何故位于