Нажмите на гистограмму (текст, написанный на диаграмме) не работает с использованием Selenium

Я автоматизирую приложение, построенное на HTML5, используя Selenium с исходным кодом Python XML:

<g class="enteringBarsGroup" transform="translate(0, 3.42308)">
<rect id="idx9-2011" class="bar" style="fill: rgb(107, 158, 226); pointer-events:      auto;" width="321" name="2011" title="2011: 136" height="13.692307692307692" rx="3" pointer-events="none" opacity="0.8" isMouseOver="false">
<text class="labelshadow" x="0" dx="10" y="6.846153846153846" dominant-baseline="middle" pointer-events="none">2011</text>
<text class="label" x="0" dx="10" y="6.846153846153846" dominant-baseline="middle" pointer-events="none">2011</text>
</g>

На странице есть гистограммы и круговые диаграммы. Когда я нажимаю на значение гистограммы, результирующие значения на других графиках меняются.

Это мой тестовый сценарий. Я не могу нажать на гистограмму. Я попробовал варианты ниже

 #self.browser.find_element_by_id("idx9-2011").click()

а также

 #self.browser.find_element(BY.NAME,"2011").click()

1 ответ

Во-первых, вы должны исключить эту проблему (если вы используете IE, вам нужно установить масштаб на 100%).

Также стоит попробовать и другие решения на этой странице, например:

self.browser.find_element_by_id("idx9-2011");
self.browser.execute_script("arguments[0].fireEvent('onclick');");

Иногда это не click() который запускает событие. Вы пытались, например, выполнить mouse_down(), а затем mouse_up(). Я не уверен, как добиться этого в Python, но вам придется использовать расширенные взаимодействия с пользователем.

В общем, с проблемами, когда Selenium испытывает затруднения при запуске события пользовательского интерфейса, иногда проще найти решение с помощью плагина Firefox Selenium IDE, а затем перенести решение в WebDriver.

Другие вопросы по тегам