【问题标题】:Cannot click on an xpath selected object Selenium (Python)无法单击 xpath 选定对象 Selenium (Python)
【发布时间】:2021-05-18 15:05:21
【问题描述】:

我正在尝试单击使用 Xpath 选择的对象,但似乎存在无法找到该元素的问题。我正在尝试在页面的“使用条款”按钮上单击接受。我写的代码是这样的

    driver.get(link)
    
    accept_button = driver.find_element_by_xpath('//*[@id="terms-ok"]')
    accept_button.click()
    
    prov = driver.find_element_by_id("province-region")
    prov.click()

这是我的 HTML 代码:

我得到一个“NoSuchElementException”。我的目标是单击 HTML 代码底部的“Kabul Ediyorum”按钮。我开始认为我们对可以在该页面上执行的任务有一些限制。有什么想法吗?

【问题讨论】:

  • 尝试获取页面源代码(通过您的 Selenium 驱动程序)并检查它;也许网站检测到您正在使用机器人并修改您的体验
  • 这可能会有所帮助。 stackoverflow.com/questions/21350605/…
  • 能分享一下网址吗?

标签: python html selenium-webdriver xpath selenium-chromedriver


【解决方案1】:

不太确定可能是什么问题。
但您可以尝试以下方法:

  1. 尝试通过可见文本定位元素
accept_button = driver.find_element_by_xpath("//*[text()='Kabul Ediyorum']").click()
  1. 试试ActionChains

为此,您需要导入ActionChains

from selenium.webdriver.common.action_chains import ActionChains

accept_button = driver.find_element_by_xpath("//*[text()='Kabul Ediyorum']")
actions = ActionChains(driver)
actions.click(on_element=accept_button).perform()

还要确保你有implicitly wait

# implicitly wait
driver.implicitly_wait(10)

explicit wait

element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[text()='Kabul Ediyorum']"))).click()

希望这有帮助!

【讨论】:

    猜你喜欢
    • 2017-05-29
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多