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

xpath测试并纠正,但我收到错误:没有这样的元素:无法定位元素

穆招
2023-03-14

我的Xpath是正确的

没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//*[包含(@ng click,'authenticationCtrl.onSubmitMage()')]”}

我用Try-xpath测试了我的xpath,它可以工作,但当我编译代码时,仍然收到错误

页面对象:

    package com.orange.pageObject;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class MageReferentiel {
    
    WebDriver webdriver;

    public MageReferentiel(WebDriver rwebDriver) {
        webdriver = rwebDriver;
        PageFactory.initElements(webdriver, this);
    }
    
    
    @FindBy(xpath = "//*[contains(@ng-click,'authenticationCtrl.onSubmitMage()')]")
    @CacheLookup
    WebElement connexion;
    
    
    
    public void clickConnexion() {
            connexion.click();
    }

步骤定义:

@When("l utilisateur choisi le referentiel")
    public void l_utilisateur_choisi_le_referentiel() throws Exception {
        mr.clickConnexion();
        Thread.sleep(3000);
    }

我想点击按钮

谢谢

共有3个答案

席乐童
2023-03-14

我猜ng-Click属性值是在页面上动态更新的,因此当您尝试访问该元素时,该元素会被更改,而不是它的初始状态。
而不是您正在使用的定位器尝试此XPath:

//button[contains(text(),'Connexion')]

或者这个

//button[@translate='LOGIN']

此定位器的第二个元素将是

(//button[@translate='LOGIN'])[2]
汪德明
2023-03-14

由于元素与量角器(角度)配合得很好,因此在这种情况下最好在量角器中使用,因此它应该类似于元素(通过单击('authenticationCtrl.onSubmitMage')。单击()

濮阳
2023-03-14

我同意@Prophet,这可能是因为一些JS调用了按钮,//*[包含(@ng单击,'authenticationCtrl.onSubmitMage()')]将其状态更改为其他状态。所以我们可以做的是,尝试使用不同的定位器。

例如:

//button[@translate ='LOGIN']

看看这是否有效,即使它没有尝试将其更改为css。

 类似资料: