Как обращаться с тенями в SeleniumWebdriver - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь работать с этим домом с C # WebDriver.Мой хромедривер использует v38.Я не могу использовать input # frameworkInput, так как все, что находится под # shadow-root, не видно.Поэтому я попытался

IWebElement ele = (IWebElement)((IJavaScriptExecutor)Driver).ExecuteScript("return arguments[0].shadowRoot", element);

, но это просто возвращает исключение shadowRoot не найдено.Я попробовал некоторые предложения здесь, но они, кажется, не работают.Любые указатели?

This is the dom

1 Ответ

0 голосов
/ 25 марта 2019

Я нашел ответ на свой вопрос

element1
(shadowdom)
element2 
(shadowdom)
element3

Я думал, что могу получить доступ к аргументам [0] .shadowRoot прямо из домена. На самом деле я должен получить element1, запросить его для shadowRoot, получить element2, запросить его для shadowRoot, затем я могу найти element3. Это было не то, что я ожидал, скорее всего, я не смог понять предыдущие посты по этой теме. (?) Самый полезный ответ был selenium webdriver (chromedriver) и доступ к shadow dom

...