OpenQA.Selenium.WebDriverException: «неизвестная ошибка: arguments [0] .click не является функцией при попытке щелкнуть элемент svg с помощью ChromeDriver Selenium» - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь автоматизировать управление элементом изображения "svg", который имеет 12 выбираемых частей внутри (с тегом "path").

Во всех моих электронно-угловых приложениях я должен использовать действия jsс Selenium, чтобы нажимать на кнопки или другие элементы пользовательского интерфейса.Функция Selenium Click или класс Actions не работают для меня в этом приложении.

Итак, когда я пытаюсь нажать на один из элементов "svg":

 IWebElement patientIllustration = electron.driver.FindElement(By.Id("patientIllustration"));
 IWebElement shadow = (IWebElement)jse.ExecuteScript("return arguments[0].shadowRoot", patientIllustration);
 IWebElement body = shadow.FindElement(By.Id("adult_vascular"));
 IReadOnlyCollection<IWebElement> parts = body.FindElements(By.TagName("path"));
 IWebElement bodyPart = parts.ElementAt(0); 

 jse.ExecuteScript("arguments[0].scrollIntoView(true);", bodyPart);
 jse.ExecuteScript("arguments[0].click();", bodyPart);

, я получаю следующееошибка:

OpenQA.Selenium.WebDriverException: 'неизвестная ошибка: аргументы [0] .click не является функцией (информация сеанса: содержимое оболочки =) (информация о драйвере: chromedriver = 2.36 (7361dbe5ac927be4276ec7da1d3548c4f22343a0)платформа = Windows NT 10.0.14393 x86_64) '

Я также пытался щелкнуть элемент bodyPart с помощью метода Click () и класса Actions.Но это ничего не делает.Эти две возможности не работают ни для одного элемента в моем приложении.

У кого-нибудь есть еще идеи, чтобы попробовать?

Ответы [ 2 ]

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

Это сообщение об ошибке ...

OpenQA.Selenium.WebDriverException: 'unknown error: arguments[0].click is not a function 
 (Session info: content shell=) 
 (Driver info: chromedriver=2.36 
 (7361dbe5ac927be4276ec7da1d3548c4f22343a0),platform=Windows NT 10.0.14393 x86_64)

... означает, что ChromeDriver не смог связаться с WebBrowser , т.е. Chrome Browser * сеанс 1009 *.

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

  • Вы используете chromedriver = 2,36
  • Примечания к выпуску chromedriver = 2,36 четко упоминает следующее:

Опоры Chrome v63-65

  • Возможно, вы используете последнюю версию Chrome Browser , т.е. chrome = 73.0
  • Примечания к выпуску ChromeDriver v73.0.3683.68 четко упоминает следующее:

Поддержка Версия Chrome 73

Таким образом, существует явное несоответствие между ChromeDriver v2.36 и Chrome Browser v73.0


Решение

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

Вместо этого

jse.ExecuteScript("arguments[0].scrollIntoView()", bodyPart);

Вы можете попробовать это.

jse.ExecuteScript("arguments[0].scrollIntoView(true);", bodyPart);
...