Нажмите на гистограмму (текст, написанный на графике) не работает с использованием Selenium - PullRequest
0 голосов
/ 19 января 2012

Я автоматизирую приложение, построенное на 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 Ответ

0 голосов
/ 19 января 2012

Во-первых, вы должны исключить эту проблему (если вы используете 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.

...