我正在编写一个脚本来自动重复为网站注册新用户(不是提升指标,而不是你的想法!)。我可以归结为注册一系列鼠标点击和输入的过程。我知道有一些宏录像机会让我记录我如何使用GUI并重复它,但我需要每次都输入一些不同的东西 - 但鼠标点击始终是相同的。
想象脚本看起来像:
username = "something"
for i in range(0,100):
playback recorded series of mouse clicks A
type username + str(i)
type some other stuff
playback recorded series of mouse clicks B
但我找不到一个很好的工具来记录一系列鼠标点击,这样我就可以用AppleScript或python脚本来播放它们。
我找到了一个有用的脚本(http://www.bluem.net/en/mac/cliclick/),我可以调用它来获取2个坐标和点击。所以,即使我能找到一个工具来记录鼠标点击的坐标,它们也会起作用!
答案 0 :(得分:1)
如果您想获得要执行鼠标点击的屏幕坐标,可以使用我发现的名为MouseTools here的免费工具。我是为了这个目的而做的。你会想做我在页面底部附近的示例#1 applescript中显示的内容。只需将鼠标移动到屏幕上的某个位置,然后运行applescript即可获得坐标。注意:您需要将鼠标移动到某个位置并按下命令-r(当applescript位于最前面时)以在AppleScript编辑器中运行该脚本。
此外,我发现点击屏幕坐标,正如Lauri Ranta使用系统事件在她的AppleScript中显示的那样,通常无法可靠地工作。系统事件擅长点击Finder,但是经常无法点击Safari等应用程序的窗口。如果您也发现了这个问题,那么您也可以使用MouseTools来执行鼠标点击。同样,这就是我创建程序的原因,并且有一些如何在网页上执行此操作的示例。
我希望它有所帮助。祝你好运。
答案 1 :(得分:0)
希望您正在进行测试自动化!
您是否考虑使用类似Selenium WebDriver的内容?
答案 2 :(得分:0)
您还可以使用tell application "Safari" to tell document 1 to do JavaScript
或tell application "Google Chrome" to tell tab 1 of window 1 to execute javascript
等浏览器在浏览器中运行JavaScripts。
tell application "Safari" to tell document 1
do JavaScript "document.querySelectorAll('.mainnavs ul li:nth-child(2) a')[0].click()"
delay 1
repeat until do JavaScript "document.readyState" is "complete"
delay 0.1
end repeat
do JavaScript "document.getElementById('tagfilter').value = 'aa'"
end tell
System Events具有模拟点击和击键的命令:
delay 1
tell application "System Events" to tell process "Safari"
click at {76, 117}
repeat with i from 1 to 3
keystroke "aa" & i & return
end repeat
keystroke "a" using command down
end tell
您可以从Accessibility Inspector.app中查看UI元素的位置。它是Xcode的一部分,但也可以从developer.apple.com/downloads下载。
答案 3 :(得分:0)