html中的Selenium和iframe
问题内容:
无法对iframe使用send_key()。如何选择此iframe,以及其中的哪个元素应用于send_key()?
和iframe html代码
<iframe class="textarea" src="/framework/html/blank.html" style="width: 99%; border-width: 1px; height: 332px;">
#document
<html webdriver="true">
<head>
</head>
<body> … </body>
</html>
</iframe>
如何将值发送给描述?
我想知道的一件事是,当我在浏览器中浏览“查看页面源代码”时,框架代码不会出现吗?
问题答案:
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
假设该驱动程序是webdriver的正常实例。要继续使用默认内容,请执行driver.switch_to.default_content()
编辑 :当您切换到所需的框架时,请像往常一样定位您的网络元素。我猜(但不确定),在您的情况下,这将是html / body,因此
el = driver.find_element_by_xpath('html/body')
应该没事。并执行
el.send_keys('keys_to_send')
EDIT2 :在发送键之前,您可能必须专注于元素(单击应执行的操作,应出现子元素)。或者,您也可以通过JS放置所需的文本。
driver.execute_script('document.body.innerHTML = "%s"' % text_var)