python - 我在 python selenium 中找不到以下元素
问题描述
我无法选择(单击)标题和图片中的元素:
该元素是表中的一行。
这是元素:
<span _ngcontent-c37="" class="telno"> +529999111118 </span>
我试过了:
number_element = driver.find_element_by_xpath("//button[contains(.,'+529999111118')]")
driver.execute_script("arguments[0].click();", number_element)
那是我得到的错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//button[contains(.,'+549999111112')]"}
(Session info: chrome=74.0.3729.131)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Linux 4.15.0-47-generic x86_64)
解决方案
您提供的标签是错误的button
,不是span
。
number_element=driver.find_element_by_xpath("//span[contains(.,'+529999111118')]")
driver.execute_script("arguments[0].click();", number_element)
我建议使用WebdriverWait
和element_to_be_clickable
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.XPATH,"//span[@class='telno'][contains(.,'+529999111118')]"))).click()
推荐阅读
- database - 访问不想打开报告 - 不关注其他窗口
- algorithm - 如何在遗传算法中进行二进制编码以获得更好的时间表调度问题结果?
- c++ - 如果进程正在运行,我如何关闭我的程序?
- python - KerasLayer 模型经过微调后尺寸增大
- python - 使用 Pyinstaller 创建的 .exe 文件显示错误 input(): lost sys.stdin
- angular - 打字稿类方法返回未定义
- python - 验证人是否在场
- smpp - 如何使用 https://github.com/farhadi/node-smpp 接收 message_payload?
- javascript - 如何从 HTML 选择中获取选定的文本以将其发送到数据库
- python - 如何从测试访问子目录