我正在使用 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>
可以看到,每个category中都有一个style="display: none;",如果没有选中该category则style的值将保持display: none强>,
选择类别后,style 的值将更改为 display:block。
现在我需要先检查弹出的是哪个弹出(警报)窗口,然后切换到该窗口单击某个项目。那么我应该做什么?有 friend 可以帮忙吗?
最佳答案
我认为您可以使用 get_attribute("style")
来完成您在此处尝试执行的操作。据我所知,您实际上并没有使用真正的警报 - 警报是一个没有 HTML 的 Javascript 弹出窗口,只能通过警报类接受或消除。
以下是检查每个元素中的 display: none
和 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: none
和 display: block
属性。
关于javascript - 如何在 Selenium Python 中处理模态框或弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537965/