首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Selenium和selenium.common.exceptions.NoSuchElementException将文本发送到输入字段时发生selenium.common.exceptions.NoSuchElementException错误

使用Selenium和selenium.common.exceptions.NoSuchElementException将文本发送到输入字段时发生selenium.common.exceptions.NoSuchElementException错误
EN

Stack Overflow用户
提问于 2022-01-22 04:14:55
回答 2查看 71关注 0票数 0

我正在尝试编写一个简单的程序来填写要提交的表单(包括订单ID和邮政编码),但我一直收到以下错误:

代码语言:javascript
运行
复制
selenium.common.exceptions.NoSuchElementException: Message: "  (without any text following "Message

法典审判:

代码语言:javascript
运行
复制
from selenium import webdriver
browser = webdriver.Safari()
browser.get('https://knowledge.tonal.com/s/order-status')

orderElm = browser.find_element_by_id('input-3')
orderElm.send_keys('1000XXX')

zipcodeElm = browser.find_element_by_id('input-4')
zipcodeElm.send_keys('90210')
zipcodeElm.submit()

我已经多次检查了我的元素ID,虽然我对此非常陌生,但我很有信心我有正确的元素ID。我做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-22 04:50:42

若要向元素发送字符序列,需要为WebDriverWait导入element_to_be_clickable(),您可以使用以下任何一个Locator Strategies

使用

  • XPATH

20).until(EC.element_to_be_clickable((By.XPATH,"//div@data-aura-class='cOrderSearch'//following::input1"))).send_keys('1000XXX') driver.find_element(By.XPATH,"//div@data-aura-class='cOrderSearch'//following::input2").send_keys("90210") )WebDriverWait(驱动程序)

  • Note:您必须添加以下导入:

从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

  • 浏览器快照:

票数 0
EN

Stack Overflow用户

发布于 2022-01-22 04:25:27

这里有很多问题: A.在获得url之后,您没有等待页面中的元素完全加载,因此元素就找不到了。在我看来,您所拥有的定位器是动态的,例如:input-3,我认为它是input-5 (虽然我在Chrome浏览器上,但这并不排除定位器是动态的)。因此,我重新分解和寻找一些静态定位策略,我贴在下面。C. zipcodeElm.submit()不能工作,因为它不是按钮元素。我也重新考虑过这个问题。这是密码。

代码语言:javascript
运行
复制
driver.get('https://knowledge.tonal.com/s/order-status')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[1]")))
orderElm = driver.find_element(By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[1]")
orderElm.send_keys('1000XXX')
zipcodeElm = driver.find_element(By.XPATH, "(//div[@data-aura-class='cOrderSearch']//input)[2]")
zipcodeElm.send_keys('90210')
driver.find_element(By.XPATH, "//*[@data-aura-class='cOrderSearch']//parent::div//button").click()

输出:(退出代码0意味着传递的代码没有错误)

代码语言:javascript
运行
复制
Process finished with exit code 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70809938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档