python - 元素不可点击,因为另一个元素遮住了它
问题描述
我用下面的代码解决了这个问题,我在其他帖子中没有找到解决方案,所以我试着让自己工作得很好。我现在不知道它是否是一个好的代码,因为我是 Python 和编程的新手,但它确实有效。
因为我想使用可见文本(不是按值或选项编号)选择元素,所以我使用了以下代码,其中包括通过 Xpath [contains(text(), 'text')] 查找元素,然后更改 html . 也许它对另一个有用。
self.driver.execute_script(
"arguments[0].selected=true",
self.driver.find_element_by_xpath(
'//*[contains(text(), "%s" )]' % 'your_visible_text'
),
)
解决方案
这个问题通常发生在 chrome 浏览器中,因为 chrome 使用点位置。当元素在 DOM 中加载但位置未固定在 UI 上时,会发生这种情况。您可以使用某些特定的解决方案来解决此问题:
等待:
使用 WebDriverwait 和 Expected Conditions 类。
例如:
visiblityOfElementLocated(按定位器)
或者
可见性(WebElement 元素)
在执行操作之前,我们正在等待元素出现并可见
在选择下拉菜单之前尝试最大化浏览器窗口
驱动程序 .manage().window().maximize();
希望这有帮助。代码使用 Java selenium 请使用其对应的 Python 代码。
推荐阅读
- qt - 双击时 TabView 中的 QML 可编辑选项卡标题
- java - Spring Boot 2.2.0 如何接受 RequestBody 中的日期参数?
- authentication - 有没有办法自定义 laravel auth 以验证用户是否预先存储在旧表中?
- c++ - 设计自己的结果/要么:成功类型和错误类型是否应该始终是明确的?
- python - 当保存在数据库 pandas 中时,长数字正在被转换为科学计数法
- c++11 - 如何使用 std::chrono::milliseconds 作为默认参数
- c++ - 当输入正确或相等时,C ++连续添加数字
- python - 如何在终端中运行一行 Python 命令?
- android - ViewModel 在后按时被清除
- python - 按字母顺序和罗马数字排序