Python Selenium无法定位元素-框架

Python Selenium无法定位元素-框架,python,selenium,web-scraping,Python,Selenium,Web Scraping,我正在尝试使用selenium创建python脚本,以填充站点上的搜索框:。我的代码: chromedriver = "./chromedriver" os.environ["webdriver.chrome.driver"] = chromedriver driver = webdriver.Chrome(chromedriver) driver.get('http://acervo.bndigital.bn.br/sophia/index.html') time.sleep(2) drive

我正在尝试使用selenium创建python脚本,以填充站点上的搜索框:。我的代码:

chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get('http://acervo.bndigital.bn.br/sophia/index.html')
time.sleep(2)
driver.find_element_by_css_selector('#div_rap > table > tbody > tr > td > form > input.input_busca').send_keys('test')
我已经尝试使用
find_element_by_css_selector
find_element_by_xpath
,但没有成功。我收到了错误消息:

NoSuchElementException:Message:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“#div_rap>table>tbody>tr>td>form>input.input_busca”}

我不知道为什么会发生这种情况。

试试这个

input_element = driver.find_element_by_xpath("/html/body/div[1]/div[1]/table/tbody/tr/td/form/input[1]")
input_element.send_keys("Enter your value")
input_element.submit()

由于iframe,您正面临问题。在开始将文本输入到inputbox之前,需要切换到iframe

请参考以下解决方案:

driver.maximize_window()
wait = WebDriverWait(driver, 10)
driver.get("http://acervo.bndigital.bn.br/sophia/index.html")
driver.find_element_by_tag_name('frame').send_keys("Keys.ESCAPE")
driver.switch_to.frame("mainFrame")
inputBox = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@name='rapida_campo']")))
inputBox.send_keys("your test")
输出:


编辑Q,使其包含python读者可以复制/粘贴到本地环境并复制问题的最小代码量。在这里发布更多Qs之前,请阅读。祝你好运。@Sheller抱歉!我试图更正我的帖子。谢谢,表演得好!没什么可遗憾的!很高兴你得到了你需要的帮助。有了代码示例,我可以为你的问题投票。祝你好运,继续发帖(有代码示例、所需的输入和输出、当前的输出和错误消息!;-)(我以前没有投反对票)。我是论坛的新手,所以我不能对你的答案投票,但我接受了。