为了账号安全,请及时绑定邮箱和手机立即绑定

点击Selenium + Python

点击Selenium + Python

慕慕森 2023-08-21 19:42:05
我在 Selenium 中点击时遇到问题,它没有点击按钮。这是我的代码:from selenium import webdriverimport timeimport clickfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()driver.get("https://help.instagram.com/contact/723586364339719/")submit_button = driver.find_element_by_xpath('//*[@id="u_0_8"]')submit_button.click()这是 HTML 代码:<button value="1" class="_42ft _4jy0 _4jy4 _4jy1 selected _51sy" type="submit" id="u_0_8">Enviar</button>
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您可以使用显式等待按钮来完成此操作:


from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC



WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='u_0_8']"))).click()

我希望它能帮助你!


查看完整回答
反对 回复 2023-08-21
?
慕斯709654

TA贡献1840条经验 获得超5个赞

所需的元素是动态元素,因此要单击该元素,您需要引发WebDriverWait ,并且element_to_be_clickable()可以使用以下任一 定位器策略:


使用CSS_SELECTOR:


driver.get('https://help.instagram.com/contact/723586364339719/')

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))).click()

使用XPATH:


driver.get('https://help.instagram.com/contact/723586364339719/')

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@value='1' and normalize-space()='Send']"))).click()

注意:您必须添加以下导入:


from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

浏览器快照:

https://img1.sycdn.imooc.com//64e34dc20001561e13640773.jpg

查看完整回答
反对 回复 2023-08-21
?
哔哔one

TA贡献1854条经验 获得超8个赞

而不是这个:


submit_button = driver.find_element_by_xpath('//*[@id="u_0_8"]')

submit_button.click()

尝试这个:


driver.find_element_by_id("id='u_0_8']").click()


查看完整回答
反对 回复 2023-08-21
  • 3 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信