如何使用selenium查找输入

2024-10-04 11:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要通过在以下输入上单击selenium来提交此表单:

<div align="center">
 <input type="submit" class="boton" value="Aceptar">
</div>

我试过:

driver.find_element_by_xpath("//input[@value='Aceptar']").click() 

我也试过用类名“boton”但不起作用


Tags: div表单inputvaluetypedriverseleniumelement
3条回答

您可以使用Javascript执行器来执行

button = driver.find_element_by_xpath("//input[@value='Aceptar']")
driver.execute_script("arguments[0].click();", button)

要单击input元素,需要首先切换到iframe

诱导WebDriverWait()并等待frame_to_be_available_and_switch_to_it()

诱导WebDriverWait()并等待element_to_be_clickable()

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"busqueda")))
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@value='Aceptar'][@class='boton']"))).click()

您需要导入以下库

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

更新

Input element存在于嵌套的iframe中。为了访问,您需要切换到嵌套的iframes

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.iframeTGR")))
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"busqueda")))
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@value='Aceptar'][@class='boton']"))).click()

利用execute_script设置输入字段的值属性。检查以下代码块:

input_field= driver.find_element_by_xpath("//input[@value='Aceptar']")

driver.execute_script("[0].click();",input_field)

相关问题 更多 >