Selenide: работа с тэгом <map> без javascript

Здравствуйте!

Есть ли в Selenide возможность выполнить действие с в тэге ?

Приходится использовать конструкции типа:

executeJavaScript("return arguments[0].click()", $(By.cssSelector("area[alt=\"Академия\"]")));

Конечно есть!
Это ведь то же самое, что и $("area[alt=\"Академия\"]").click();

Андрей, спасибо!
Извините, что я неудачно сформулировал свой вопрос.
Именно приведенную Вами конструкцию я и использовал при написании теста. Мой вопрос связан с тем, что Selenide, к сожалению, не работает с тегом map так, как ожидалось. Метод $(“area[alt="Академия"]”).click() не находит соответствующую область. А вот executeJavaScript(“return arguments[0].click()”, $(By.cssSelector(“area[alt="Академия"]”))) прекрасно отрабатывает.

Похоже, что Selenide наследует проблему из Selenium. Кстати ее нет в Selenium IDE. Причем, что интересно, экспорт теста из Selenium IDE дает тест Selenium c неработающей конструкцией обработки тега map:
(driver.findElement(By.cssSelector(“area[alt="Академия"]”)).click();).

Удалось найти следующее обсуждение в инете по данной теме:
https://groups.google.com/forum/m/#!topic/webdriver/R5z2ueNgfhY

В принципе конструкция с использованием javascript достаточно компактна, но хотелось бы сохранить красоту Selenide (в отличие от ее косноязычного, но тоже замечательного папаши Selenium :smile:). Кроме того, я полностью согласен с Вами, что с не следует смешивать идеологически разные подходы к созданию тестов
([А.С.] “В принципе можно так делать. Но это действительно франкенштейн.” Тестирование Salesforce с помощью Selenide (вопросы-ответы) - Salesforce-Developer.ru).

  создано
  
  18 часов

  
  последний ответ
  
  17 часов
  

  1
  ответ

  30
  просмотров

  2
  пользователя

Привет!
Теперь понял проблему. Да, это проблема (ну или особенность) Selenium webdriver.
Предположу, что в Selenium IDE её нет потому, что Selenium IDE как раз и выполняет все команды через JavaScript.

Похоже, вашу проблему решит вот такая настройка: -Dselenide.click-via-js=true.
Когда она включена, Selenide как раз совершает операцию click через JavaScript, а не вебдрайвер. Это как раз и было придумано для тех случаев, когда просто click не работает.

1 лайк

Класс!
$(“area[alt=“Академия”]”).click() заработал!

Спасибо!

Андрей, извините за вопрос, а где можно прочитать про возможные параметры (настройки) запуска Selenide и случаи (которые имелись в виду, когда Вы создавали эту настройку), когда просто click не работает?

Это легко: http://selenide.org/javadoc/3.4/com/codeborne/selenide/Configuration.html

Спасибо Вам большое!
Ждем Ваших новых публикаций и выступлений!
Удачи!

1 лайк