python - 元素不可见。raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException
问题描述
有以下页面。
您需要选择一个特定的country
并click
在其上,但是在计算下一行时,我得到一个错误。
raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException
select = driver.find_element_by_class_name('f1wrnyr7')
select.click()
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[contains(@class, 'md_countryName_fdxiah8') and text()='Colombia']")))
element.click()
解决方案
引发异常是因为您的代码能够在 DOM 中找到该元素,但该元素在页面上不可见。此外, 的父div
级span
包含一个名为 的属性hidden
。以下是DOM结构
<div hidden="">
<div class="f1g5w0oh">
<div class="rm-container">
<div class="rm-row">
<div class="rm-col-sm-12 order-sm-last">
<div class="f1o6pohl">
<h5 class="foyw123">Send Money To</h5>
<div class="rm-row fywghj7">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div class="rm-col-md-6 rm-col-lg-4 fhdzg5g">
<div>
<a class="f12qs1j9" href="/us/en/colombia">
<span>
<img class="md_flag_ffypto0" src="https://media.remitly.io/COL_32x21@2x-471f08f81b303eb2d3ac61da0909673f.png" alt="Colombia"/>
<span class="md_countryName_fdxiah8">Colombia</span>
</span>
最好的方法是手动重现这些步骤,并了解使元素可见所需的步骤顺序。
推荐阅读
- python - 英镑符号不显示 Jinja2(编码)
- excel - Excel VBA - 用户表单复选框复制行
- android - 从语言环境代码中获取国家和语言
- flutter - 在 Flutter 的 SearchBar 中搜索期间没有显示搜索项?
- text - TextField 的文本不会更新,但其他属性会更新
- sql - 根据数组中的匹配项从字符串中删除单词
- python - 如何减少python代码的数量?
- wpf - 通过仅使用 XAML 的相同绑定在下拉列表和选定项目框中显示项目
- javascript - 一个控制器用于多个页面
- javascript - _This2 在调度动作时不是函数错误