<p>这是我在评论中讨论后的回答。这不是迪帕克问题的完美答案,我意识到这一点,但他让我把它贴出来。在</p>
<pre><code> from robot.libraries.BuiltIn import BuiltIn
import pyautogui as pag
class click_by_image(object):
def __init__(self):
self.selenium_lib = None
def click_by_image(self, image_name):
"""
Click the center of a rectangle on the screen given the
image_name of the image rectangle to search for
:param image_name: Path to image
"""
# If ExtendedSelenium2Library instance is undefined
if self.selenium_lib is None:
# Instantiate ExtendedSelenium2Library
self.selenium_lib = BuiltIn().get_library_instance('ExtendedSelenium2Library')
pag.click(pag.locateCenterOnScreen(str(image_name)))
</code></pre>
<p>这是它来自的完整关键字。对于小图片来说,它很滑(大约20px x~40px是它有问题的地方,尽管我还没有精确地测量过),但是如果屏幕上有精确的像素集,它对大图片的效果非常好。这是屏幕上的<em>任何地方</em>,而不仅仅是在DOM中,所以这是我用来在选项卡之间单击并与普通桌面交互的工具。在</p>
<p>若要使用此关键字,请将图片的本地副本作为绝对路径或相对路径馈送到<code>click_by_image()</code>,这两种路径都可以,并且它将按照文档的形式工作。在</p>
<p>我提到的具体代码是<code>pag.locateCenterOnScreen()</code>,它来自pyautogui。它返回一组坐标,所以如果你没有得到这些坐标,那么你的图像就不会出现在屏幕上。如果你这样做了,那么你知道a)你的形象存在,b)它在哪里。在</p>