Python Selenium如何找到输入按钮

时间:2018-08-13 23:49:47

标签: python python-3.x selenium

在网站上,输入标签为:

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

如何使硒选择此输入按钮?

我尝试过:

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

但是它找不到输入按钮。

3 个答案:

答案 0 :(得分:1)

我将使用此xpath查找上面的 输入

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

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

更新:

由于找不到元素,并且页面上没有 iframe ,因此,如果有任何 AJAX /,我建议使用WebDriverWait在页面加载完成后 后创建输入的JavaScript /动态加载事件

将它们导入到脚本中

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])

答案 1 :(得分:0)

请确保输入代码位于iframe中?

如果在iframe中使用,则应使用

browser.switch_to.frame('iframe's id')进入iframe,如果输入此框架,则可以使用xpath或css选择器找到所需的标签。

答案 2 :(得分:0)

有一个明显的拼写错误,“ Submit”值在源代码中带有大写的S,但是在选择器中提供了小写字母。试试这个吧!

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