将 javascript 代码添加到任何网站并执行每次单击 webdriver 中的文档时添加的功能
adding javascript code to any website and execute the function added on every click on document in webdriver
我所做的是在 webdriver 中编写代码,它将向我打开的任何网站添加以下 javascript 代码
Javascript code
<script>
var hilightElement = function(e) {
var event = e || window.event;
var target = e.target || e.srcElement;
e.srcElement.style.border = "solid blue 1px";
};
if (document.addEventListener){
document.addEventListener('click', hilightElement, false);
}
else if (document.attachEvent){
document.attachEvent('onclick', hilightElement);
}
</script>
Webdriver Code
public static void injectJavaScript(WebDriver oDriver,String sJavaScript)
{
JavascriptExecutor js = (JavascriptExecutor) oDriver;
String s=oDriver.findElement(By.xpath("html/head")).getAttribute("innerHTML");
s=s.replaceFirst("</title>", "</title>\n"+sJavaScript);
((JavascriptExecutor) oDriver).executeScript("arguments[0].innerHTML='" + StringEscapeUtils.escapeEcmaScript(s) + "'", oDriver.findElement(By.xpath("html/head")));
}
但我搜索过它不起作用,他们说它与重新加载脚本有关
我在这里错过了什么?
无需追加到头部,全部执行it.and从字符串中删除脚本标签
public static void injectJavaScript(WebDriver oDriver,String sJavaScript)
{
JavascriptExecutor js = (JavascriptExecutor) oDriver;
js.executeScript(sJavaScript);
}
我所做的是在 webdriver 中编写代码,它将向我打开的任何网站添加以下 javascript 代码
Javascript code
<script>
var hilightElement = function(e) {
var event = e || window.event;
var target = e.target || e.srcElement;
e.srcElement.style.border = "solid blue 1px";
};
if (document.addEventListener){
document.addEventListener('click', hilightElement, false);
}
else if (document.attachEvent){
document.attachEvent('onclick', hilightElement);
}
</script>
Webdriver Code
public static void injectJavaScript(WebDriver oDriver,String sJavaScript)
{
JavascriptExecutor js = (JavascriptExecutor) oDriver;
String s=oDriver.findElement(By.xpath("html/head")).getAttribute("innerHTML");
s=s.replaceFirst("</title>", "</title>\n"+sJavaScript);
((JavascriptExecutor) oDriver).executeScript("arguments[0].innerHTML='" + StringEscapeUtils.escapeEcmaScript(s) + "'", oDriver.findElement(By.xpath("html/head")));
}
但我搜索过它不起作用,他们说它与重新加载脚本有关
我在这里错过了什么?
无需追加到头部,全部执行it.and从字符串中删除脚本标签
public static void injectJavaScript(WebDriver oDriver,String sJavaScript)
{
JavascriptExecutor js = (JavascriptExecutor) oDriver;
js.executeScript(sJavaScript);
}