我找不到输入框

2024-09-30 14:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是错误:

Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="cardCvc-input"]"}

这是html:

<input type="tel" name="cardCvc" id="cardCvc-input" autocomplete="off" required="" minlength="3" maxlength="4" pattern="[0-9]{4}|[0-9]{3}" cccvc="" class="form-control ng-pristine ng-invalid ng-touched">

这是我的代码:

driver = webdriver.Chrome()
driver.get(a)
driver.implicitly_wait(5)
driver.find_element_by_name('emailAddress').click()
driver.find_element_by_name('emailAddress').send_keys('email')
time.sleep(2)
driver.find_element_by_name('password').click()
driver.find_element_by_name('password').send_keys('password\n')
driver.implicitly_wait(10)
driver.find_element_by_id('cardCvc-input').send_keys('123')
driver.find_element_by_class_name('button-continue').click()

我使用了标记名、id、类名和名称,但仍然找不到此元素


Tags: namesendidinputbydriverpasswordelement
1条回答
网友
1楼 · 发布于 2024-09-30 14:27:21

您的元素很可能位于iframe中。因此,在与元素交互之前,您需要进入框架内部

driver = webdriver.Chrome()
driver.get(a)
driver.implicitly_wait(15)
frame = driver.find_element_by_xpath("//iframe[@title='payment']")
driver.switch_to.frame(frame)
driver.find_element_by_name('emailAddress').send_keys('email')

**注:**

  1. 你不应该同时使用隐式等待和时间。因为隐式等待已经足够了,而且是比时间更好的等待方式
  2. 任何时候需要退出iframe时,请使用driver.switch\u to.default\u content()

相关问题 更多 >