Я получаю очень длинный xpath для выбранного элемента.Есть ли способ его укоротить?Это xpath, который я получаю:
// li [@ class = 'menu_men 1-уровень hasChild'] // div [содержит (@ класс, 'уровень-2')]] //DIV [@ CLASS = 'меню-обертку'] // уль [@ класс = 'уровень-2'] // Ли [= @ класс '1 уровня'] // DIV [@ класс = 'уровень-3']// ul [@ class = 'level-3'] // li // a [@ class = 'level-3'] [содержит (text (), 'Socks')]
Это URL-адрес: Calvin Klein Singapore Я завис над «МУЖЧИНАМИ», появится раздел аксессуаров, а затем наведите «Носки», чтобы получить xPath.
Я получаю следующее исключение в моем коде, и мне интересно, может ли длинная xpath быть одной из причин:
org.openqa.selenium.NoSuchElementException: нет такогоelement: Невозможно найти элемент: {"method": "xpath", "selector": "// li [@ class = 'first menu_men 1-уровень hasChild'] // div [содержит (@ класс, 'уровень-2')] // DIV [@ класс =' меню-обертку '] // уль [@ класс =' уровень-2 '] // Ли [@ класс =' 1 уровня '] // DIV [@ класс ='уровень-3 '] // уль [@ класс =' уровень-3 '] // Li // а [@ класс =' уровень-3 '] [содержит (текст (),' носки)] "}
Я использую кропат из инструментов разработчика Chrome для получения xPath.
Я новичок в автоматизации, я действительно надеюсь, что кто-то может посоветовать.Спасибо.
@ SameerArora Это код, который я должен очистить во всплывающем окне, как я уже упоминал в комментариях ниже.
//for clearing the popup window
@FindBy(how=How.XPATH,using="//*[starts-with(@id,'popup-subcription-closes-link-')]")
public WebElement newsletterpopup;
public String clickCategory(){
//.....
resusableFunctions.buttonClick(driver, newsletterpopup, "popoup");
}
public void buttonClick(WebDriver driver, WebElement element, String elementName) throws InterruptedException
{
try
{
element.click();
System.out.println("Log: ResuableFunction.buttonClick");
}
catch (org.openqa.selenium.ElementNotInteractableException notInteract)
{}