python - 如何关闭或关闭模式对话框
问题描述
我有一个模态对话框,在我确定它的存在并提取它的文本后,我需要关闭/关闭它。当我单击按钮下载文件时出现模式,并显示“正在生成调试信息文件。请稍候。” 此模式一直存在,直到文件下载开始,这取决于 debuginfo 文件的大小。有没有办法关闭此对话框并退出并从中提取文本。
我正在使用以下代码提取文本:
downloadText = WebDriverWait(self.driver,40).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.ui-dialog-content.ui-widgetcontent#dialog"))).get_attribute("innerHTML").split(">")[1]
以下是此模式的 html 代码:
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span id="ui-id-1" class="ui-dialog-title">Download debug info</span>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick">
</span>
<span class="ui-button-text">close</span>
</button>
</div>
<div id="dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; max-height: none; height: 177px;">
<br>Generating the debuginfo file. Please wait.</div>
<div class="ui-resizable-handle ui-resizable-n" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-e" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-s" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-w" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-sw" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-ne" style="z-index: 90;">
</div>
<div class="ui-resizable-handle ui-resizable-nw" style="z-index: 90;">
</div> ```
解决方案
根据原始帖子中提供的示例代码,您应该能够使用以下 xpath 关闭对话框。
//span[@class='ui-button-icon-primary ui-icon ui-icon-closethick']
这是单击元素的脚本,即使它不可见。
ele = driver.find_element_by_xpath("//span[@class='ui-button-icon-primary ui-icon ui-icon-closethick']")
driver.execute_script("arguments[0].click();",ele)
推荐阅读
- php - 使用 codeigniter 的迁移类创建数据库
- python - 使用函数和随机数
- javascript - Scroll Magic Section 擦除高度问题
- python - 如何将处理后的图像保存到python文件夹内的不同文件夹中?
- reactjs - React Native 忽略了状态变化
- phaser-framework - 选项卡失去焦点时 Phaser3 时间已过
- c++ - strace -f 在自己的递归 C++ 程序上不起作用
- android - 使用 RXJAVA 处理显示 ProgresBar 的服务器延迟
- mysql - 在mysql中表达两个组合条件
- r - 为什么在ggplot2中手动编辑时会出现两个图例?