Python Selenium如何点击无class、id、name仅绑定onclick的元素
问题原因
你之前使用的a[onclick*=fecharModal]选择器匹配的是a标签元素,但目标关闭按钮是div标签,标签类型不匹配所以无法定位到元素。
可行解决方法
方案1:使用你提供的CSS选择器定位(推荐)
搭配显式等待避免元素未加载导致的报错:
# 最多等待10秒,直到关闭按钮可点击后执行操作 close_button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.CSS_SELECTOR, "#meu_modal > div")) ) close_button.click()
方案2:使用你提供的XPath路径定位
close_button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, '//*[@id="meu_modal"]/div')) ) close_button.click()
方案3:通过onclick属性匹配定位
如果modal下有多个div导致前两个定位冲突,可以直接匹配点击事件属性:
close_button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.CSS_SELECTOR, 'div[onclick="fecharModal();"]')) ) close_button.click()
特殊情况处理:点击被拦截时用JS触发点击
如果遇到元素被遮罩层覆盖、常规点击报错的情况,可以直接执行JS触发点击:
close_button = driver.find_element(By.CSS_SELECTOR, "#meu_modal > div") driver.execute_script("arguments[0].click();", close_button)
内容的提问来源于stack exchange,提问作者CaponeValue
相关产品推荐
相关产品推荐

