首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python selenium webdriver中单击HTML5画布上的点

如何在Python selenium webdriver中单击HTML5画布上的点
EN

Stack Overflow用户
提问于 2015-04-14 18:26:06
回答 1查看 8.1K关注 0票数 3

我正在尝试使用python中的Selenium webdriver (在linux中使用Firefox )自动在网站上使用一个简单的HTML5应用程序。我需要我的Python程序单击位于HTML5画布上特定位置的按钮,然后在按下按钮后单击并在画布上拖动一个或两个对象。

似乎selenuim目前无法在HTML5画布上实际定位按钮或任何其他对象。首先,我尝试找到HTML5按钮出现的页面上的坐标,计算出它与selenium可以通过ID找到的页面上的对象的像素偏移量,然后使用move_to_element_with_offset,如下所示:

from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
move_to_element_with_offset(elem, 50, -250)
actions.click()
actions.perform()

这似乎不管用。它没有引发错误,但什么也没发生。我突然想到,我可能弄错了坐标,但我不知道如何查看页面上点击的实际位置,以便检查这一点。在各种论坛上,许多人似乎认为selenium中的单击操作无论如何都是不可靠的。接下来,我发现有人声称能够通过运行一个javascript来实现我想要做的事情,这个javascript可以模拟在页面上给定坐标的点上的点击。查看此处:http://chariotsolutions.com/blog/post/automated-testing-of-html5-canvas/

我对Python很在行,但对javascript几乎一无所知。我尝试了一些与本文非常相似的东西:

x = '675'
y = '450'
driver.execute_script("var evt = $.Event('click', { pageX: " + x +", pageY: " + y + " } );" + "$('#diagramCanvas').trigger(evt);")

这导致了一个错误:

WebDriverException: $.Event is not a function

如何让Python Selenium webdriver在给定坐标的情况下单击HTML5画布中的某个点?有没有一个javascript脚本可能不会引发类似上面的错误,或者有其他方法可以做到这一点?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29624949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档