Selenium – не удается найти окно поиска servicenow для ввода текстаC#

Место общения программистов C#
Ответить
Anonymous
 Selenium – не удается найти окно поиска servicenow для ввода текста

Сообщение Anonymous »

Я использую экземпляр тестирования servicenow, где я пытаюсь найти элемент для поля поиска, и я пробовал его по идентификатору, по XPath и другим вещам, но до сих пор он продолжает выдавать мне NoSuchElementException. Фрагмент HTML: https://pastebin.com/1Yx7yxmi
Там вы увидите, что у него есть идентификатор того, что, как мне кажется, является окном поиска (показывает xpath, в который я копирую попробуйте найти его с помощью этого): //*[@id="sncwsgs-typeahead-input"]
Я пробовал такие вещи, как: var searchElement = driver.FindElement(By. Id("sncwsgs-typeahead-input"));
Есть идеи? Я уверен, что это вполне возможно, я просто очень плохо разбираюсь в селене и HTML, поэтому любой, кто тестировал это, работал и может знать какие-либо трюки, это было бы полезно прямо сейчас!
Я также попробовал этот полный xpath:

Код: Выделить всё

/html/body/macroponent-f51912f4c700201072b211d4d8c26010//div/sn-canvas-appshell-root/sn-canvas-appshell-layout/sn-polaris-layout//div[2]/div[2]/div[1]/sn-polaris-header//nav/div/div[3]/div[1]/div[1]/div/sn-search-input-wrapper//sn-component-workspace-global-search-typeahead//div/div/div/div/input
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Здесь показано, что работает, а что нет:

Код: Выделить всё

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3));
var myElement = wait.Until(x => x.FindElement(By.CssSelector("macroponent-f51912f4c700201072b211d4d8c26010"))); // this works
var shadowRootElement = myElement.GetShadowRoot(); // no error from here
// this below does not work
//var myElement = wait.Until(x => x.FindElement(By.CssSelector("macroponent-f51912f4c700201072b211d4d8c26010 /deep/ dxcsnas-root")));
//var shadowRootElement = myElement.GetShadowRoot();
Элемент вложен в несколько элементов теневого корня — я не уверен, что проблема здесь. Я пробовал использовать функцию селена С# «element.GetShadowRoot()», и она не выдает никакой ошибки в первом элементе, который я нашел при поиске все дальше и дальше «вверх» по xpath. Но все дочерние элементы/подтеневые корни по какой-то причине не позволяют мне их получить.
Если вы хотите увидеть весь сайт html:https://drive.google.com/file/d/1muvP1F ... VZ4lvGWGpp
Если это имеет значение, я пытаюсь использовать драйвер Chrome — некоторое время я видел проблему Вернемся к тому, что у других возникли проблемы с доступом к вещам внутри теневого домена на chromedriver после версии 2022 года - хотя я не знаю, имеет ли это какое-либо отношение к этому.
Было бы неплохо это сделать. правильный путь и научитесь тому, как вместо того, чтобы вручную перемещать мышь в нужное положение и щелкать по ней с помощью другого кода, отличного от селена!

Подробнее здесь: https://stackoverflow.com/questions/791 ... enter-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»