使用Selenium时无法点击柱状图上的文字

0 投票
1 回答
1347 浏览
提问于 2025-04-17 10:35

我正在用Python和Selenium自动化一个基于HTML5的应用程序,后面有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

首先,你需要排除这个问题(如果你在使用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上。

撰写回答