python - Python Selenium如何找到输入按钮
问题描述
在网站上,输入标签是这样的:
<input value="Submit" type="submit">
我怎样才能让硒选择这个输入按钮?
我试过这个:
browser.find_element_by_css_selector("input[value='submit']")
但它无法找到输入按钮。
解决方案
我会使用这个 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])
推荐阅读
- c# - 为什么即使不存在分隔符,string.Split(" ") 也会返回元素?
- php - Need Help on Filtering the json to grab only the values
- python - Tkinter 以错误的比例保存画布
- c# - Versions not resolving for Nuget packages
- docker - 构建缺少Newtonsoft.Json的docker镜像时.net核心构建错误
- android - 仅针对基本活动的依赖注入使子活动崩溃
- elasticsearch - 使用弹性搜索查询 DSL 对 Kibana 中某个字段的所有值求和
- java - 如何运行我在 TI-84 Plus 计算器上编写的 java 程序?
- python - How can I find the indices of the quantiles of an array?
- sccm - SCCM and Client 'Replace'