使用Selenium XPath在Python中难以找到输入字段

1 投票
2 回答
45 浏览
提问于 2025-04-14 15:22

我现在正在学习Selenium自动化,想要自动化一个简单的任务:

  1. 访问一个网页,(https://sri-gpt.github.io)
  2. 找到一个输入框,
  3. 在里面输入文本,然后提交表单。

为此,我使用的是Python和Selenium WebDriver。

这是我写的代码:

from selenium import webdriver
driver = webdriver.Chrome()

driver.get("https://sri-gpt.github.io")

# Find the form field using its XPath
form_field = driver.find_element("xpath", '/html/body/flutter-view/flt-text-editing-host/form/input[1]')
form_field.send_keys("MyInput_123")

driver.quit()

但是,当我运行这段代码时,遇到了以下错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/flutter-view/flt-text-editing-host/form/input[1]"}

看起来我用来找到输入框的XPath表达式不正确。我尝试了不同的写法,但都没有成功。有没有人能帮我修正我的XPath表达式,让我能成功找到网页上的输入框?

另外,如果有关于使用Selenium WebDriver定位元素的最佳实践或其他方法,我也很感激任何建议或意见。

Selenium version: 4.18.1
Python version: 3.10.12
Ubuntu version: 22.04 
Chrome version: 22.0.6261.128 (Official Build) (64-bit)

谢谢!

2 个回答

0

你可以使用XPath或者chropath这个Chrome扩展来找到具体的元素。

0

使用下面的xpath来输入文本到文本框中

//input[contains(@class, 'flt-text-editing')]

撰写回答