试图在元素中找到提交按钮
Trying to find submit button in elements
我正在尝试在 python 中编写一个将 post 加入 steamgroup 的 steambot;我在最后一步遇到问题,
我找不到 sumbit 按钮
<button type="submit" class="btn_green_white_innerfade btn_medium" id="commentthread_General_34191408_submit">
<span>Post Discussion</span>
</button>
要将 提交 按钮的文本标识为 Post 讨论,您可以使用以下任一方法 :
使用CSS_SELECTOR
:
element = driver.find_element_by_css_selector("button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span")
使用XPATH
:
element = driver.find_element_by_xpath("//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']")
但是,因为它是一个 提交 按钮,所以继续前进你将调用 click()
,所以你必须诱导 WebDriverWait 为 element_to_be_clickable()
,您可以使用以下任一解决方案:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
这是您的按钮,100% 有效。我在本地查了。
driver.find_element(By.XPATH, "//button[@type='submit']")
我正在尝试在 python 中编写一个将 post 加入 steamgroup 的 steambot;我在最后一步遇到问题, 我找不到 sumbit 按钮
<button type="submit" class="btn_green_white_innerfade btn_medium" id="commentthread_General_34191408_submit">
<span>Post Discussion</span>
</button>
要将 提交 按钮的文本标识为 Post 讨论,您可以使用以下任一方法
使用
CSS_SELECTOR
:element = driver.find_element_by_css_selector("button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span")
使用
XPATH
:element = driver.find_element_by_xpath("//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']")
但是,因为它是一个 提交 按钮,所以继续前进你将调用 click()
,所以你必须诱导 WebDriverWait 为 element_to_be_clickable()
,您可以使用以下任一解决方案:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn_green_white_innerfade.btn_medium[id^='commentthread_General_'][id$='_submit']>span"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn_green_white_innerfade btn_medium' and starts-with(@id, 'commentthread_General_')]/span[text()='Post Discussion']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
这是您的按钮,100% 有效。我在本地查了。
driver.find_element(By.XPATH, "//button[@type='submit']")