selenium定位无法定位网页元素

无法定位输入手机号这个元素 进行输入值

img

https://img-mid.csdnimg.cn/release/static/image/mid/ask/188418758086151.png "#left")

我用了这个方法进行修改定位元素

img


错误代码:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element style="display: inline-block; vertical-align: middle;">... is not clickable at point (787, 463). Other element would receive the click: name="telType" type="radio" class="am-radio-input" checked="">
  (Session info: chrome=112.0.5615.50)

解决问题输入这个值 可以的话写一下注释

可不可以远程看看

该回答通过自己思路以及引用到baidu搜索,得到内容具体如下:
【解决办法】
可以尝试使用 ActionChains 类模拟鼠标操作,先定位到手机号码输入框,再使用 move_to_element 方法将鼠标移动到输入框上,最后使用 click 方法进行点击。
代码示例如下:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

# 创建浏览器对象
driver = webdriver.Chrome()

# 打开网页
driver.get('https://www.woyaogexing.com/tel')

# 定位手机号码输入框并输入值
input_box = driver.find_element_by_xpath('//input[@id="tel"]')
actions = ActionChains(driver)
actions.move_to_element(input_box).click().send_keys('12345678901').perform()

# 关闭浏览器
driver.quit()

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

源于ChatGPT:
这个错误提示是由于元素被其他元素遮挡而无法进行点击操作。具体原因可能有以下几种情况:

元素被其他元素遮挡,导致无法进行点击操作。此时需要检查页面布局,确保目标元素不被其他元素遮挡。

页面未完全加载完成,元素还没有出现在可见区域,或者元素上方存在其他浮层。此时需要使用WebDriverWait等等待方法等到元素可点击后再进行操作。

元素的位置和大小发生了变化,导致原先的定位方式无法准确找到元素。此时需要重新定位元素或者修改定位方式。
针对这个具体的错误代码,可以尝试以下解决方法:

首先检查页面布局,确保目标元素不被其他元素遮挡。

尝试使用WebDriverWait等待方法等到目标元素可点击后再进行点击操作。例如可以使用以下代码:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

等待5秒,直到元素可点击

wait = WebDriverWait(driver, 5)
element = wait.until(EC.element_to_be_clickable((By.XPATH, 'xpath_of_the_element')))

点击元素

element.click()

其中,xpath_of_the_element需要替换为目标元素的XPath路径。
3. 如果以上方法都无法解决问题,可以考虑重新定位元素或者修改定位方式。可以尝试使用其他定位方式,比如By.ID、By.CLASS_NAME等,或者使用相对定位方式,比如xpath="//*[text()='目标文本']"。



  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7690868
  • 除此之外, 这篇博客: Selenium 详细教程中的 6. 如何在定位元素后高亮元素(以调试为目的)? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1.js方法,直接让该元素置顶

    2.要是点击后没高亮,就用js去修改属性吧(万能的js)

试试根据class或者id查找