Исключение в основном потоке: невозможно найти элемент с выражением пути x - PullRequest
0 голосов
/ 12 декабря 2018

Я использую Selenium Webdriver с Java для автоматизации страницы.Проблема, с которой я сталкиваюсь, заключается в том, что мой тест не может распознать ни один элемент на странице.

Например, я пытаюсь нажать кнопку с именем LogIn, и я попробовал селектор xpath, id, css, но ни один из этих вариантов не помог мне.

Это HTML-код:

<button type="button" id="ext-gen72" class=" x-btn-text tdgi_icon_key">LogIn</button>

Это мой код:

public class Test {

    public static void main(String[] args) throws InterruptedException {

        System.setProperty("webdriver.chrome.driver","C:\\Users\\mkrolo\\Documents\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("page");
        driver.manage().window().maximize();
        Thread.sleep(13000);
        System.out.println(driver.getTitle());
        driver.findElement(By.xpath("button[contains(text(), 'LogIn']"));
        //driver.findElement(By.xpath("//@button[text()='LogIn']")).click();
   }    
}

Дополнительные комментарии: это только один пример, который я пробовалчтобы нажать кнопку, а также Thread.sleep(), поскольку загрузка страницы занимает много времени.

Я ценю любую помощь, которую вы можете предоставить.

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Оба xpath, которые вы используете, недействительны.Это причина исключения.Поэтому вы должны попробовать использовать действительный xpath или какой-либо другой локатор -

xpath

  • //button[contains(text(), 'LogIn'] - это позволит найти кнопку, если частичный текст соответствует
  • //button[text()='LogIn'] - кнопка будет расположена при полном совпадении текста, если до или после текста будет пробел, то она не работает
  • //button[@type='button'][@class='x-btn-text tdgi_icon_key']

css

  • .x-btn-text.tdgi_icon_key например driver.findElement(By.cssSelector(".x-btn-text.tdgi_icon_key"));

  • button[type='button'][id^='ext-gen']

Вам нужно изучить какое-то учебное пособие для более удобного создания xpath и css.

Кроме того, избегайте использования жестко закодированного ожидания в сценарии, используйте неявные и явные концепции ожидания селена.

0 голосов
/ 12 декабря 2018

Чтобы помочь вам с xPath и избежать подобных ошибок, вы можете проверить и скопировать xPath с помощью Chrome и ввести то же значение в селектор селена.

enter image description here

0 голосов
/ 12 декабря 2018

Вы используете неверный xpath.Попробуйте

By.xpath("//button[contains(., 'LogIn']")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...