我正在對移動站點進(jìn)行自動化測試,但在選擇(包含國家/地區(qū)列表)時遇到問題。菜單是這樣的:<select id="depart" name="fromIsoCode" aria-controls="depart" aria-expanded="false"> <option value="xx">yyFullName</option> <option value="yy">yyFullName</option></select>重要說明:當(dāng)單擊菜單并且列表對用戶“可見”時,屬性“aria-expanded”變?yōu)椤皌rue”我應(yīng)該做的測試是檢查一旦我們選擇了一個值,列表就不再可見/顯示。我在以下代碼中使用了一些東西進(jìn)行測試:By element = By.cssSelector("select#depart[aria-expanded=\"true\"]")assertFalse(driver.findElement(element).isDisplayed());問題是,即使到達(dá)這些行時元素不存在,也isDisplayed()返回 true在調(diào)試模式下,元素select#depart[aria-expanded=\"true\"]不在頁面的 DOM 中(但select#depart[aria-expanded=\"false\"]在)結(jié)果與isDisplayed()我期望的相反:因為select#depart[aria-expanded=\"true\"]它假設(shè)是假的(我在 DOM 中沒有元素,但它是真的,因為select#depart[aria-expanded=\"false\"]它應(yīng)該是真的(它在 DOM 中)但它是假的。 ..我的第一個猜測是,這與我們之前選擇了一些東西有關(guān),但事實證明不,即使檢查是我在頁面上做的第一件事,它也會失敗。第二個猜測是它要么是特定于選擇元素的東西,要么是嘗試使用select#depart[aria-expanded=\"true\"]和select#depart[aria-expanded=\"false\"]作為不同元素的問題,但我不知道如何處理它。問題是:如何檢查選擇/下拉菜單是否用 selenium/java 展開?為什么它沒有按預(yù)期工作?編輯 1 03/09/18我試圖測試“aria-expanded”值,它給出了相同的結(jié)果。當(dāng)它應(yīng)該是假的時,我在 DOM 中認(rèn)為它是假的,但是在調(diào)試中查看它時 selenium 變得“真”。編輯 2 03/09/18調(diào)試我注意到以下幾點:如果我在“觀察”我的變量之前“檢查”我的瀏覽器,我在調(diào)試中得到的結(jié)果是好的......調(diào)試正在暫停 -> 我在“aria-expanded”上添加了一個手表,它給出了“true”(而不是預(yù)期的“false”)->我右擊我的瀏覽器/檢查頁面“aria-expanded”是“false” -> 我添加了第二個具有相同元素的手表或“刷新”第一個,我在“aria-expanded”(“false”)中獲得了正確的值……增加等待時間沒有任何作用……還有一些子彈嘗試一下,我會回來提供更多信息編輯 3 03/09/18問題不在于下拉菜單的狀態(tài)。我的方式和 theGuy 都做“檢查下拉菜單是否展開”的工作(問題 1)由于這是主要問題,我接受 theGuy 的回答。關(guān)于問題 2:這可能是一個值得自己提出問題的特定問題,我設(shè)法通過在選擇中發(fā)送“制表鍵”來暫時解決它。這是一個“在緊急情況下”的修復(fù),但我不想讓整個問題懸而未決,我不想讓人們至少沒有線索。
添加回答
舉報
0/150
提交
取消