Python Selenium如何找到输入按钮

标签 python python-3.x selenium

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

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

如何让selenium选择这个输入按钮?

我尝试过这个:

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/动态加载事件

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

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

关于Python Selenium如何找到输入按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831970/

相关文章:

python - 使用 scapy 释放 DHCP

python - 如何根据模型与特定对象的关联为模型添加辅助 ID?

python - 在 BeautifulSoup 中用字典解析脚本标签

python - 发布数据应该是字节。不能是 str 类型

java - Selenium assertText 用于表中的所有文本?

python - 在 Tornado 的 ioloop 中出现异常时启动 pdb

python - 分离的Web服务器和应用服务器?

python - 使用 aiohttp.ClientSession.get 时如何模拟协程 json()

node.js - 在哪里放置用于 webdriverIO 测试的测试文件 - 使用 docker 容器?

selenium - 在 selenium : The constructor PDFParser(BufferedInputStream) is undefined 中阅读 PDF