Нажмите на гистограмму (текст, написанный на диаграмме) не работает с использованием 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.