Selenium Python:如何使用 innerText 单击跨度元素
Selenium Python: How to click on a span element with innerText
这看起来很简单。我正在尝试通过 selenium chrome 网络驱动程序单击提交按钮,这显然非常简单。但是由于某些原因,我无法这样做。
代码如下所示:-
<div class="prettyBtn primaryBtn" onclick="setIsDataAdjustHiddenField();QuoteFormSubmit();return false;"> <span> Get Quote </span></div>
附上代码片段的图片。
到目前为止,我已经尝试过 xpath,class“btn”的完整 Xpath,class“prettyBtn primaryBtn”。
没有成功,我想用class名称“find_elements_by_class_name”来监视他们,但仍然无法点击按钮。
这是我到目前为止尝试过的方法:-
通过 Span 标签:
driver.find_elements_by_xpath("//span[text()='Get Quote']").click()
来自 class 姓名:
driver.find_elements_by_class_name("btn").click()
driver.find_elements_by_class_name("prettyBtn primaryBtn").click()
我确实查看了文档和其他一些解决方案,但到目前为止运气不佳...我还有其他网页可以填写并提交表格,但这个网页除外。有什么帮助或建议吗?
<span>
中的innerText包含前导和尾随空格你必须考虑它,你可以使用以下任一项 :
使用 xpath 和 normalize-space()
:
element = driver.find_element(By.XPATH, "//span[normalize-space()='Get Quote']")
使用 xpath 和 contains()
:
element = driver.find_element(By.XPATH, "//span[contains(., 'Get Quote')]")
要理想地点击元素,您需要诱导 WebDriverWait for the and you can use either of the following :
使用 xpath 和 normalize-space()
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[normalize-space()='Get Quote']"))).click()
使用 xpath 和 contains()
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(., 'Get Quote')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
这看起来很简单。我正在尝试通过 selenium chrome 网络驱动程序单击提交按钮,这显然非常简单。但是由于某些原因,我无法这样做。
代码如下所示:-
<div class="prettyBtn primaryBtn" onclick="setIsDataAdjustHiddenField();QuoteFormSubmit();return false;"> <span> Get Quote </span></div>
附上代码片段的图片。
到目前为止,我已经尝试过 xpath,class“btn”的完整 Xpath,class“prettyBtn primaryBtn”。
没有成功,我想用class名称“find_elements_by_class_name”来监视他们,但仍然无法点击按钮。
这是我到目前为止尝试过的方法:-
通过 Span 标签:
driver.find_elements_by_xpath("//span[text()='Get Quote']").click()
来自 class 姓名:
driver.find_elements_by_class_name("btn").click()
driver.find_elements_by_class_name("prettyBtn primaryBtn").click()
我确实查看了文档和其他一些解决方案,但到目前为止运气不佳...我还有其他网页可以填写并提交表格,但这个网页除外。有什么帮助或建议吗?
<span>
中的innerText包含前导和尾随空格你必须考虑它,你可以使用以下任一项
使用 xpath 和
normalize-space()
:element = driver.find_element(By.XPATH, "//span[normalize-space()='Get Quote']")
使用 xpath 和
contains()
:element = driver.find_element(By.XPATH, "//span[contains(., 'Get Quote')]")
要理想地点击元素,您需要诱导 WebDriverWait for the
使用 xpath 和
normalize-space()
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[normalize-space()='Get Quote']"))).click()
使用 xpath 和
contains()
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(., 'Get Quote')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC