找回密码
 加入
搜索
查看: 1417|回复: 17

[IE类操作] 如何判断谷歌浏览器中的按钮是否存在并按要求点击?

[复制链接]
发表于 2023-5-10 15:16:06 | 显示全部楼层 |阅读模式
如图所示,chrom浏览器打开网页后才会显示按钮,我想通过颜色来判断按钮是否存在,确发现PixelGetColor函数根本无法取色,还有其他办法吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-5-10 21:23:41 | 显示全部楼层
; 激活谷歌浏览器窗口
WinActivate("同花顺创作平台-Google Chrome")

; 检查按钮是否存在
ControlCommand("同花顺创作平台-Google Chrome", "", "Chrome_WidgetWin_1", "IsEnabled")

试试

 楼主| 发表于 2023-5-11 10:21:14 | 显示全部楼层
谢谢楼上的回复,可能是我的问题没有描述清楚。
这个按钮不是控件其实就是一个链接。由于网速不稳定,每次页面刷新后,按钮链接显示出来的时间也不同有时甚至会不显示按钮,我需要一个准确判断这个链接是否显示成功。
发表于 2023-5-13 06:21:54 | 显示全部楼层
本帖最后由 fybhwsx 于 2023-5-13 06:23 编辑

找色不行,只能搜图了吧……
发表于 2023-5-15 08:05:48 | 显示全部楼层
如果窗口内不能找色,那不激活窗口,整屏截图应该就可以找色了吧?
 楼主| 发表于 2023-5-15 10:29:14 | 显示全部楼层
截屏找色要保存图片再找,效率有点低,有木有能在剪切板里找色的办法?
发表于 2023-5-15 11:31:17 | 显示全部楼层
1#图片显示的颜色 0xF0F0F0 应该是正确的,PixelGetColor 不行?代码问题吧
 楼主| 发表于 2023-5-15 13:34:15 | 显示全部楼层
afan 发表于 2023-5-15 11:31
1#图片显示的颜色 0xF0F0F0 应该是正确的,PixelGetColor 不行?代码问题吧

这是截图后取到的颜色,直接从网页上是取不到颜色的。
发表于 2023-5-15 14:02:37 | 显示全部楼层
本帖最后由 afan 于 2023-5-15 14:17 编辑
microzhou 发表于 2023-5-15 13:34
这是截图后取到的颜色,直接从网页上是取不到颜色的。

你的图片分明是窗口控件信息,截图?
如果 0xF0F0F0 是指向的蓝色按钮,只能说获取的颜色不对才是。这种情况一般是带有分层样式的窗口,可以先截图再获取色值。

你可以用 屏幕巡查 测试下,勾选“分层”与不勾选的差别
 楼主| 发表于 2023-5-15 16:39:05 | 显示全部楼层
0xF0F0F0,是蓝色按钮附近那一块位置的取色值,鼠标在蓝色和白色位置是取色都是 0xF0F0F0。
发表于 2023-5-16 10:08:11 | 显示全部楼层
#include "wd_helper.au3"
#include "wd_capabilities.au3"
Global $_WD_DEBUG = 0 ; You could also use $_WD_DEBUG_Error
Global $_DEBUG = ["OFF", "WARNING", "INFO", "ALL"]
Global $sDesiredCapabilities, $sSession, $sElement
Global $ResSU, $ResSUE
_WD_UpdateDriver("Chrome")

$sDesiredCapabilities = SetupChrome(False)
$ResSU = _WD_Startup()
$ResSUE = @error
If $ResSU = 0 Then Exit MsgBox(262144, "", "Result Startup = " & $ResSU & "   " & "Error = " & $ResSUE)

QQDown()

Func QQDown()
        Local $XPath, $sSession, $sElement, $sRes
        $sSession = _WD_CreateSession($sDesiredCapabilities)
        _WD_SetTimeouts($sSession, '{"pageLoad":10000}')
        _WD_Navigate($sSession, "https://im.qq.com/pcqq")
        $XPath = '//*[@class="btn-downlond"]/a'
        $sElement = _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, $XPath) ;等待按钮加载
        $sRes = @error
        Sleep(250)
        If $sRes = $_WD_ERROR_Success Then
                _WD_ElementAction($sSession, $sElement, 'click');点击按钮
                MsgBox(0,"","点击了下载按钮")
                Sleep(2000)
                EndIf
        _WD_DeleteSession($sSession)
        _WD_Shutdown($ResSU)
EndFunc   ;==>Fanyi


Func SetupChrome($Head)
        _WD_Option('Driver', 'chromedriver.exe')
        _WD_Option('Port', 9515)
        _WD_Option('DriverParams', '--log-level=' & $_DEBUG[$_WD_DEBUG] & ' --log-path="' & @ScriptDir & '\chrome.log"')
        _WD_CapabilitiesStartup()
        _WD_CapabilitiesAdd('alwaysMatch', 'chrome')
        _WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
        _WD_CapabilitiesAdd('excludeSwitches', 'load-extension')
        ;_WD_CapabilitiesAdd('args', "--guest")
        If $Head Then
                _WD_CapabilitiesAdd('args', '--headless') ;无头模式
        EndIf
        _WD_CapabilitiesAdd('binary', _WD_GetBrowserPath("chrome")) ; 设置浏览器路径
        _WD_CapabilitiesDump(@ScriptLineNumber) ; dump current Capabilities setting to console - only for testing in this demo
        Local $sCapabilities = _WD_CapabilitiesGet()
        Return $sCapabilities
EndFunc   ;==>SetupEdge

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2023-5-16 15:11:26 | 显示全部楼层
我尝试运行上面的代码,报错了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-5-16 18:30:46 来自手机 | 显示全部楼层
本帖最后由 gyp2000 于 2023-5-16 18:32 编辑
microzhou 发表于 2023-5-16 15:11
我尝试运行上面的代码,报错了。

3.3.16.1下测试通过。旧版本估计需要修改一下编译参数。
 楼主| 发表于 2023-5-17 10:13:01 | 显示全部楼层
已经下载了最新版本,运行是没问题了,慢慢啃代码。
发表于 2023-5-17 18:51:17 | 显示全部楼层



au3WebDriver-1.0.0



目前 _WD_UpdateDriver 函数如果找不到对应版本的 WebDriver驱动将返回失败,需要手动下载 WebDriver驱动





https://github.com/Danp2/au3WebDriver/releases/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 10:54 , Processed in 0.086656 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表