gpt4 book ai didi

c# - 如何使用 Selenium 或其他工具操作 Chrome 扩展的小部件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:53 24 4
gpt4 key购买 nike

我一直在寻找一种方法来点击扩展的小部件 outside the HTML DOM在 C# 中使用 Selenium(比如打开它等等...),但没有成功。我尝试了 addExtension 方法,但它使 Chrome 崩溃并尝试使用默认配置文件,因此事件扩展将与 ChromeDriver 实例一起加载,但这对我也不起作用。

这些元素没有我可以导航到的页面以更改它们的设置(它们在单击小部件时有一个弹出窗口),所以我需要另一种方法来执行此操作。

你们中的任何一位 Selenium 专家都知道我是否可以用 Selenium 实现它,或者它可能是将来要实现的功能?

或者也许有另一个不错的免费工具可以做到这一点?

最佳答案

我找到了 this图像搜索 dll 库与 AutoIt 中的包装器为我解决了它。它不是您能找到的最强大的解决方案,但对于大多数人来说它工作得很好。它适用于 Chrome 的不可识别控件。

使用非常简单:

$result = _ImageSearchArea("ButtonImagePath.png", $tolerance, $Left, $Top, $Right, $Bottom, $x, $y, 100)

其中 $x 和 $y 是结果位置,因此您可以在之后发送点击。使用截图工具获取图像也非常容易。更多信息 herehere .

编辑:如果您想在 C# 中使用它,也可以使用它的 dll 进行互操作:(这对于在不明按钮上自动点击鼠标等非常有用)

class ImageHelper
{
[DllImport("ImageSearchDLL.dll")]
private static extern IntPtr ImageSearch(int x, int y, int right, int bottom, [MarshalAs(UnmanagedType.LPStr)]string imagePath);

private static String[] UseImageSearch()
{
int right = Screen.PrimaryScreen.WorkingArea.Right;
int bottom = Screen.PrimaryScreen.WorkingArea.Bottom;

IntPtr result = ImageSearch(0, 0, right, bottom, "imageFileName.png");
String res = Marshal.PtrToStringAnsi(result);


if (res[0] == '0') return null;//not found

String[] data = res.Split('|');
int x;
int y;
int.TryParse(data[1], out x);
int.TryParse(data[2], out y);

//0->found, 1->x, 2->y, 3->image width, 4->image height
Cursor.Position = new Point(x, y);

return data;
}
}

关于c# - 如何使用 Selenium 或其他工具操作 Chrome 扩展的小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com