Невозможно найти элемент метода XPath, Selector - PullRequest
0 голосов
/ 05 ноября 2019

Я не уверен, почему он не может идентифицировать элемент управления, содержащий значение. Я пытался с классом, который не работал. Может ли кто-нибудь, пожалуйста, дайте мне знать, что делать.

это мой код

    string locator = string.Format("//*[@class='getlist']/div");
    Random elenumber = new Random();
    int num = elenumber.Next(1, 10);
    IWebElement fav = driver.FindElement(By.XPath(locator + "[" + num + "]" + "/div[@class='col-xs-12 col-md-4 col-sm-4 left-hm-contactus-hm']/div/div[@class='col-md-6 fav_hm']/center/form/input[@name='add']"));
    Console.WriteLine(fav);
    fav.Click();
    Thread.Sleep(1000);

это ошибка, которую я получаю

OpenQA.Selenium.NoSuchElementException: 'no such element: Unable to locate element: {"method":"xpath","selector":"//*[@class='getlist']/div[1]/div[@class='col-xs-12 col-md-4 col-sm-4 left-hm-contactus-hm']/div/div[@class='col-md-6 fav_hm']/center/form/input[@name='add']"}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

попробуйте использовать этот код.

 String myXpath = "//*[@class='getlist']/div[" + num + "]/div[@class='col-xs-12 col-md-4 col-sm-4 left-hm-contactus-hm']/div/div[@class='col-md-6 fav_hm']/center/form/input[@name='add']";
    IWebElement fav = driver.findElement(By.xpath(myXpath));

а также это очень большой и плохой xpath. Поделитесь URL-адресом веб-сайта и именем веб-элемента, который вы пытаетесь использовать, может быть, я могу дать лучший xpath, который будет использовать случайные числа от 1 до 10 и каждый раз будет давать случайный элемент.

0 голосов
/ 05 ноября 2019

Я могу представить себе две возможности:

  1. Элемент находится в пределах iframe, в котором вам необходимо сначала получить доступ к этому iframe с помощью driver.SwitchTo().Frame(frame)

  2. div[@class='col-md-6 fav_hm'] <- это составной класс. Из того, что я помню, webdriver не обрабатывает сложные классы. Я бы посоветовал изменить это значение на <code>div[contains(@class, 'col-md-6') and contains(@class, 'fav_hm')] то же самое со всеми другими составными классами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...