【问题标题】:How to click a span text using selenium Python如何使用 selenium Python 单击跨度文本
【发布时间】:2020-02-13 02:05:49
【问题描述】:

我一直在尝试使用 selenium python 从下面的链接单击登录页面中的继续按钮。

https://www.makemytrip.com

我尝试了几个选择器,xpath..似乎对我没有用。

这是我要点击的元素:

driver.find_element_by_xpath("//span[text()='Continue']").click()

也尝试过使用 Div 类:

driver.find_element_by_xpath("//div[contains(@class, 'appendBottom25 ')]")

我希望 selenium 点击继续按钮并加载到密码页面

【问题讨论】:

  • 显示的错误信息是什么?
  • 它不显示任何错误消息。页面一直停留到用户名键
  • @user10813834:你能试试我的解决方案吗?我解决了吗?

标签: python selenium selenium-webdriver xpath


【解决方案1】:

您使用的是正确的 xpath

解决方案:

执行两次点击操作:

element =driver.find_element_by_xpath("//span[text()='Continue']")

element.click()
element.click()

这是一个奇怪的解决方案,但是..我以同样的方式解决了这个问题 仅限。

【讨论】:

  • 完美!!有用 。但为什么它适用于 2 次点击
  • @user10813834 :我正在调查它......会告诉你......如果我有什么东西
【解决方案2】:

试试这个:

driver.find_element_by_xpath("//*[@id="SW"]/div[2]/div[2]/div[2]/section/form/div[2]/button/span").click()

如果您选择通过 xpath 查找元素,则必须将 xpath 作为参数传递。 (您右键单击继续按钮> inspect > 然后右键单击标记为> copy xpath 的元素)

【讨论】:

  • 我试过了,输入用户名后页面不动,也没有错误信息
  • 也试试这些:driver.find_element_by_xpath("//*[@id="SW"]/div[2]/div[2]/div[2]/section/form/div[ 2]/button").click() driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/div[2]/div[2]/div[2]/section/form /div[2]/button").click()
  • 它说无法定位元素://*[@id='SW']/html/body/div[1]/div/div[1]/div[2]/div[ 2]/div[2]/section/form/div[2]/button
【解决方案3】:

我认为你应该点击“按钮”。

尝试使用下面的xpath:

//按钮[./span[text()='Continue']]

并使用显式等待来等待元素可点击。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[./span[text()='Continue']]"))).click()

【讨论】:

    猜你喜欢
    • 2018-12-15
    • 2021-11-09
    • 1970-01-01
    • 2021-05-03
    • 2013-01-13
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多