我正在对移动站点进行自动化测试,但在选择(包含国家/地区列表)时遇到问题。菜单是这样的:<select id="depart" name="fromIsoCode" aria-controls="depart" aria-expanded="false"> <option value="xx">yyFullName</option> <option value="yy">yyFullName</option></select>重要说明:当单击菜单并且列表对用户“可见”时,属性“aria-expanded”变为“true”我应该做的测试是检查一旦我们选择了一个值,列表就不再可见/显示。我在以下代码中使用了一些东西进行测试:By element = By.cssSelector("select#depart[aria-expanded=\"true\"]")assertFalse(driver.findElement(element).isDisplayed());问题是,即使到达这些行时元素不存在,也isDisplayed()返回 true在调试模式下,元素select#depart[aria-expanded=\"true\"]不在页面的 DOM 中(但select#depart[aria-expanded=\"false\"]在)结果与isDisplayed()我期望的相反:因为select#depart[aria-expanded=\"true\"]它假设是假的(我在 DOM 中没有元素,但它是真的,因为select#depart[aria-expanded=\"false\"]它应该是真的(它在 DOM 中)但它是假的。 ..我的第一个猜测是,这与我们之前选择了一些东西有关,但事实证明不,即使检查是我在页面上做的第一件事,它也会失败。第二个猜测是它要么是特定于选择元素的东西,要么是尝试使用select#depart[aria-expanded=\"true\"]和select#depart[aria-expanded=\"false\"]作为不同元素的问题,但我不知道如何处理它。问题是:如何检查选择/下拉菜单是否用 selenium/java 展开?为什么它没有按预期工作?编辑 1 03/09/18我试图测试“aria-expanded”值,它给出了相同的结果。当它应该是假的时,我在 DOM 中认为它是假的,但是在调试中查看它时 selenium 变得“真”。编辑 2 03/09/18调试我注意到以下几点:如果我在“观察”我的变量之前“检查”我的浏览器,我在调试中得到的结果是好的......调试正在暂停 -> 我在“aria-expanded”上添加了一个手表,它给出了“true”(而不是预期的“false”)->我右击我的浏览器/检查页面“aria-expanded”是“false” -> 我添加了第二个具有相同元素的手表或“刷新”第一个,我在“aria-expanded”(“false”)中获得了正确的值……增加等待时间没有任何作用……还有一些子弹尝试一下,我会回来提供更多信息编辑 3 03/09/18问题不在于下拉菜单的状态。我的方式和 theGuy 都做“检查下拉菜单是否展开”的工作(问题 1)由于这是主要问题,我接受 theGuy 的回答。关于问题 2:这可能是一个值得自己提出问题的特定问题,我设法通过在选择中发送“制表键”来暂时解决它。这是一个“在紧急情况下”的修复,但我不想让整个问题悬而未决,我不想让人们至少没有线索。
添加回答
举报
0/150
提交
取消