当前位置: 首页 > 面试题库 >

将带有html / Javascript的字符串放入Selenium Webdriver中

邢晗日
2023-03-14
问题内容

我在内存中有一个HTML文档作为字符串。它包含一个<script>带有操纵dom的小脚本的标签。现在,我想将该HTML页面加载到Selenium
Webdriver中,并在脚本对其进行操作后返回该页面。由于我已经在内存中存储了html,因此我不太喜欢将html写入文件并使用加载为文件的想法driver.get("file://path/to/file")。所以问题是,是否有可能实现我想要的目标。

如果webdriver无法做到这一点,也许还有其他可能性吗?

这里有一个例子:

<html><head>
<script type="text/javascript">
function fill(){
    var i = "secret"
    document.forms[0].elements[1].value=i
}
</script>
</head><body onload="fill()">
<form method="POST"><input type="hidden" name="he1" value="">
<input type="hidden" name="he2" value="">
</form></body></html>

显然,我希望网络驱动程序执行dom操作并根据脚本更改形式。

请注意, 这仅是示例。我需要运行的实际脚本要做的事情要复杂得多。


问题答案:

如果您不想在无法替换页面内容之前创建文件或加载URL,则始终可以利用支持HTML,CSS和JavaScript
的数据URL功能:

ChromeDriver driver = new ChromeDriver();
html_content = """
<html>
     <head></head>
     <body>
         <div>
             Hello World =)
         </div>
     </body>
</html>
"""

driver.get("data:text/html;charset=utf-8," + html_content)


 类似资料:
  • 嘿,我用oracle DB和Iron Python一起使用,但我在使用包含字符“‘”的字符串时遇到了麻烦,就像Mc'Donalds中一样。(我知道它在寻找结尾')从用户输入中接受字符串,我想按原样将其添加到我的数据库中,这意味着不省略或更改任何字符。我怎么做?

  • 问题内容: 我可以创建一个空的iframe作为占位符,以便以后将html插入其中吗? 换句话说,假设我有一个ID为空的iframe, 如何在其中插入html? 我正在使用jquery,如果这样做更容易。 问题答案: 您也可以不用jQuery而做到: jQuery的html从插入的HTML中剥离body,html和head标签。

  • 我需要在一个映射中插入一些数据,该映射需要一个字符串作为键,一个字符串列表作为值,但我不知道怎么做。 这是我试图做的。 首先,我创建了一个HashMap,然后创建了一个新对象,现在出现了问题。 我创建了一个新的字符串列表,给它起了一个名字,然后我认为我必须使用“put”方法,但这是错误的,因为我有一个错误,告诉你:“方法put(String,List)在类型HashMap中 为什么是布尔值?当我在

  • 这个问题不难,我已经用自己的方法解决了,但我想听听你的意见,也许有什么方法可以让这成为一个改进的选择?Java 8-11。

  • 名称只包含字母、连字符“-”和空格“” 第一个字母应为大写字母。 空白或连字符后应紧跟大写字母。 例如,程序只应接受以下表格: “name”或“firstname-secondname”或“firstname secondname”。 我的Java代码: 有人能帮忙吗?

  • 我需要构造正则表达式来验证文本,它可以包含空格和连字符,除了连字符之外没有数字和特殊字符。文本应以字母开头。没有以空格和连字符开头和结尾。单词之间应允许使用单个空格。 ASDF-A ADF-AAD A-A-A A DDD-A 示例 AD-AA-A ADF-ad-DD-A AAA