我的测试条件是单击单元格中的超链接。 - >表格式Tr,Td
表格列 名称 - 状态 - 链接
- >首先,我们搜索该行以匹配该名称。
- >在我们的搜索找到行之后,我们检查第二列中相同行的状态。
- >状态从处理更改为完成。
- >状态为完成时,将在第3列中生成超链接。哪个需要点击。
通过F12检查源代码。链接生成为第3列中单元格的子元素。 所以我试图找到row.cell(2).GetChildren [0];
但由于子元素仅在生成链接时存在,这取决于应用程序加载。
我可以保持playback.wait();但除非其死胡同,否则不得在我的组织中使用该条件。
我给搜索属性和等待控制存在。但那也行不通。
任何人都可以指导如何等待当前UI中不存在的链接。
我的代码如下所示。
HtmlRow row = FindReport(reportName); // Method which finds row
VerifyStatus(reportName, status); // Method verifies status in the row and
returns true if complete
HtmlSpan link = new HtmlSpan(row);
link.SearchProperties.Add(HtmlSpan.PropertyNames.InnerText, "Order",
PropertyExpressionOperator.Contains);
for (int i = 0; i < 60; i++)
{
if (!link.WaitForControlExist())
{
Keyboard.SendKeys(HistoryPage, "{F5}");
}
else
{
Mouse.Click(row.Cells[2].GetChildren()[0]);
return;
}
}
我被困在这里。
答案 0 :(得分:0)
也许您需要使用某种自定义waitforcontrolexist,您可以使用自己的步骤来研究控件和您自己的特定超时。
我正在开发桌面软件项目,所以不是html项目,但我想它应该以同样的方式工作。
以下是我在一个更通用的函数中使用的代码的一部分,如果有帮助的话,请重新调整一下:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table (id SERIAL PRIMARY KEY,balance INT NOT NULL);
INSERT INTO my_table VALUES (1,100);
INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;
SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
| 1 | 100 |
| 2 | 50 |
+----+---------+
INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;
SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
| 1 | 100 |
| 2 | 50 |
| 3 | 0 |
+----+---------+
INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;
SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
| 1 | 100 |
| 2 | 50 |
| 3 | 0 |
+----+---------+