我需要屏幕抓取使用 ActiveX 控件进行导航的网页。这不是用于用户界面测试目的,而是用于从遗留应用程序下载数据。
我遇到的问题是顶部导航是带有 javascript 的完整 ActiveX,不可能通过任何方式获取元素。所以我试图在坐标上单击鼠标。
我正在使用以下方法伯格斯特罗姆的回答 https://stackoverflow.com/questions/6775351/clicking-at-coordinates-without-identifying-element
基本上我正在做
var action = new Actions(ieDriver).MoveToElement(ieDriver.FindElement(By.Tag("HTML"))).MoveByOffset(200,100).Click().Perform();
我在调试时确认 ieDriver.FindElement 返回 -1,-1 作为 HTML 标记的位置,因此偏移坐标应该是正确的。
我使用 IE 工具栏测量了坐标。当我运行代码时没有任何反应,所以我假设它在空白处单击。
有没有办法 ping 浏览器以便我知道坐标在哪里,或者是否有更好的方法来实现此目的?
我能够使用 VS Coded Unit Test 成功地做到这一点,因为它实际上移动了光标,但我不认为许可将允许我使用该选项以及让它在 Visual Studio 之外运行的烦恼。
我花了大约 2 个小时试图让它工作,我在 iframe 中有一个元素,
请记住,互联网上有很多代码示例不起作用,
我最终选择了这个,它实际上完全按照它必须的方式工作:
_driver.SwitchTo().Frame(recaptchaChallengeFrame);
var body = _driver.FindElement(By.XPath(".//body"));
Actions builder = new Actions(_driver);
builder
.MoveToElement(body, absClickX, absClickY)
.Click()
.Build()
.Perform();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)