簡體   English   中英

如何在 Selenium Python 中處理模態框或彈出框

[英]How to handle modal or Pop-up Boxes in Selenium Python

我正在使用 selenium python 來測試餐廳 pos 系統。

點擊不同的類別菜單后,會彈出大約3種不同的彈出(模態)窗口,允許自定義選擇項目。不同的類別會彈出不同的彈出(模態)窗口。

在此處輸入圖片說明

類別菜單代碼是:

<div id="iopopsz" style="display: none">
 <div style="display:flex">
     ...code..
 </div>
</div>


<div id="comboitemsz" class="copt" style="display: none;">
    <div style="display: flex">
        ...code..
</div>
</div>

<div id="mcoption8sz" class="copt" style="display: none;">
        <div style="display: flex">
        ...code..
</div>
</div>

如您所見,有一個style="display: none;" 在每個類別中,如果未選擇該類別,則樣式值將保持顯示:none

選擇類別后,樣式的值將更改為display:block

現在我需要先檢查彈出的是哪個彈出(警告)窗口,然后切換到該窗口單擊某個項目。那我該怎么辦?有朋友可以幫忙嗎?

我認為您可以使用get_attribute("style")來完成您在此處嘗試執行的操作。 據我所知,您實際上並沒有使用真正的警報——警報是一個沒有 HTML 的 Javascript 彈出窗口,只能通過警報類接受或解除。

以下是檢查display: nonedisplay: block每個元素中的display: block字符串的方法:

first_item = driver.find_element_by_id("iopopsz")
style_attr_first_item = first_item.get_attribute("style") # "display: none"

if "display: none;" in style_attr_first_item:
    print("First item is not visible.")

希望這能幫助您入門並向您展示如何有效地檢查每個元素的display: nonedisplay: block屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM