【问题标题】:Unable to locate element no such element无法定位元素没有这样的元素
【发布时间】:2020-07-13 16:50:39
【问题描述】:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import TimeoutException


driver = webdriver.Chrome()
driver.get('http://www.techfetch.com/JS/dashboard.aspx?page=fetchjobs')
time.sleep(5)
element = driver.find_element_by_xpath('//*[@id="txtKeyword"]')
element.send_keys("Java")

错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="txtKeyword"]"}
  (Session info: chrome=62.0.3202.94)
  (Driver info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 6.1.7601 SP1 x86_64)

屏幕截图显示 xpath 正确且可用

【问题讨论】:

标签: python selenium-webdriver web-scraping


【解决方案1】:

因为您尝试填写的输入字段位于iframe 内。首先切换它,然后尝试执行您之前所做的操作:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('http://www.techfetch.com/JS/dashboard.aspx?page=fetchjobs')
time.sleep(5)
driver.switch_to_frame(driver.find_element_by_id("contentframe"))  ##switch it
driver.find_element_by_xpath('//*[@id="txtKeyword"]').send_keys("Java") 

【讨论】:

  • 谢谢你,拯救了我的一天
【解决方案2】:

要将字符序列发送到Keywords 框,首先我们需要wait 以便frame 可以切换到它,然后找到Keywords 框以发送字符序列,如下所示:

driver.get('http://www.techfetch.com/JS/dashboard.aspx?page=fetchjobs')
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.XPATH,"//iframe[@id='contentframe']"))
element = driver.find_element_by_xpath("//input[@id='txtKeyword']")
element.send_keys("Java")

【讨论】:

    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2022-11-14
    • 2021-10-21
    • 2021-04-11
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多