首页 > 解决方案 > Python Selenium如何找到输入按钮

问题描述

在网站上,输入标签是这样的:

<input value="Submit" type="submit">

我怎样才能让硒选择这个输入按钮?

我试过这个:

browser.find_element_by_css_selector("input[value='submit']")

但它无法找到输入按钮。

标签: pythonpython-3.xselenium

解决方案


我会使用这个 xpath 来找到上面的输入

browser.find_element_by_xpath(".//input[@value='Submit' and @type='submit']")

如果有多个具有相同属性的输入,您可能还需要按索引查找。

更新:

由于您无法找到元素,并且页面上没有iframe,因此我建议您使用以防在页面加载完成WebDriverWait有任何AJAX/JavaScript/Dynamic 加载事件正在创建输入。

将这些导入到您的脚本中:

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

然后试试这个:

wait = WebDriverWait(browser, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, ".//input[@value='Submit' and @type='submit']"))).click()

如您的评论中所述,您必须切换到新标签。在 Selenium 中执行此操作的方法是:

#this will switch to the newest tab
browser.switch_to_window(browser.window_handles[-1])

推荐阅读