C# Selenium Webdriver 使用 SendKeys.SendWait 与本机图像上传对话框交互在 TeamCity 上不起作用
C# Selenium Webdriver Interacting with native image upload dialog using SendKeys.SendWait does not work on TeamCity
上传图片时,我正在使用 Windows.Forms.SendKeys.SendWait 与本机 windows 对话框进行交互。
我使用 webdriver 单击上传按钮,然后转到:
SendKeys.SendWait("^A"); //Highlight content so it can be overwritten
SendKeys.SendWait(path);
SendKeys.SendWait(@"{Enter}");
当我在我的 PC 上本地 运行 时效果很好,但是,测试不会 运行 在 TeamCity 代理上(我有许多其他测试 运行 OK) .它失败了,因为本机对话框似乎永远不会出现,或者即使出现,也无法与之交互。
不确定整个测试代理进程 运行 在后台发生了什么,我看不到它在做什么 - 我可以使用 webdriver 截取屏幕截图,但它无论如何都不会捕获本机对话框。
我尝试配置团队城市测试代理 windows 服务(更改登录设置以允许与桌面交互)但这没有用。它似乎无法与之交互...关于如何使它工作的任何想法?
为了使用 Selenium 上传文件,您应该直接使用 Webdriver 的 SendKeys
到需要路径的输入元素(而不是 Forms.SendKeys
)。参见 this example。
注意:您需要避免单击打开对话框的按钮。
上传图片时,我正在使用 Windows.Forms.SendKeys.SendWait 与本机 windows 对话框进行交互。
我使用 webdriver 单击上传按钮,然后转到:
SendKeys.SendWait("^A"); //Highlight content so it can be overwritten
SendKeys.SendWait(path);
SendKeys.SendWait(@"{Enter}");
当我在我的 PC 上本地 运行 时效果很好,但是,测试不会 运行 在 TeamCity 代理上(我有许多其他测试 运行 OK) .它失败了,因为本机对话框似乎永远不会出现,或者即使出现,也无法与之交互。
不确定整个测试代理进程 运行 在后台发生了什么,我看不到它在做什么 - 我可以使用 webdriver 截取屏幕截图,但它无论如何都不会捕获本机对话框。
我尝试配置团队城市测试代理 windows 服务(更改登录设置以允许与桌面交互)但这没有用。它似乎无法与之交互...关于如何使它工作的任何想法?
为了使用 Selenium 上传文件,您应该直接使用 Webdriver 的 SendKeys
到需要路径的输入元素(而不是 Forms.SendKeys
)。参见 this example。
注意:您需要避免单击打开对话框的按钮。