我有一个ac#编码的UI脚本,用于打开页面,在字段中输入值,单击图像,单击链接以在新选项卡中打开另一个页面,输入一些数据,切换回第一个选项卡,输入更多数据但是第二次找不到按钮。
var browser = BrowserWindow.Launch("...url...");
var edit = new HtmlEdit(browser);
edit.SearchProperties.Add(HtmlEdit.PropertyNames.Id, "name");
edit.Text = "Bob";
var img = new HtmlImage(browser);
img.SearchProperties.Add(HtmlImage.PropertyNames.Id, "requestImg");
Mouse.Click(img);
var link = new HtmlHyperlink(browser);
link.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "newTab");
Mouse.Click(link);
var place= new HtmlEdit(browser);
place.SearchProperties.Add(HtmlEdit.PropertyNames.Id, "place");
place.Text = "Here";
Keyboard.SendKeys("^{Tab}");
edit = new HtmlEdit(browser);
edit.SearchProperties.Add(HtmlEdit.PropertyNames.Id, "name");
edit.Text = "Sue";
img = new HtmlImage(browser);
img.SearchProperties.Add(HtmlImage.PropertyNames.Id, "requestImg");
Mouse.Click(img);
Playback.Wait(12000);
... do more stuff
除了上次尝试点击图片外,一切都按预期工作。上次尝试单击图像时没有错误消息/异常,后续代码运行,但由于click事件无效,因此失败。 为什么更改文本框的代码会在返回标签后工作,而不是单击图像选项卡?我试过在browser.Find(),browser.Refresh(),img.Find()中添加,但没有改善情况
答案 0 :(得分:0)
解决方案,虽然我正在寻找更好的解决方案......
使用img.Drawhighlight();正在绘制一个正确尺寸的蓝色框,但不是在正确的位置 - 它在屏幕上太高而且太远了。我的笔记本电脑有一个原生的3200x1800屏幕,因此我以250%的速度运行浏览器。
在创建第二个标签之前,编码的UI测试会在正确的位置点击。 创建第二个选项卡后,编码的UI测试得分错误,无法单击图像。 解决方法是将浏览器运行为3200x1800,100%。 Mouse.Click(img);然后工作,但我不能完全阅读屏幕。 将显示分辨率设置为1920x1080和100%会使文本更清晰,但编码的UI测试找不到按钮。 所以现在可以工作,但如果我能告诉测试/浏览器会记住屏幕分辨率会更好,所以我会调查一下。