小编Nat*_*e L的帖子

如何使用selenium将javascript文件加载到DOM中?

我正在使用Selenium WebDriver尝试将外部javascript文件插入到DOM中,而不是将整个内容输入到executeScript中.

看起来它正确地将节点放入DOM中,但是它只是忽略了源,即所述源js文件上的函数不运行.

这是我的代码:

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Example  {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://google.com");
        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("document.getElementsByTagName('head')[0].innerHTML += '<script src=\"<PATH_TO_FILE>\" type=\"text/javascript\"></script>';");
    }
}
Run Code Online (Sandbox Code Playgroud)

我链接的javascript文件的代码是

alert("hi Nate");
Run Code Online (Sandbox Code Playgroud)

我已将js文件放在我的localhost上,我使用file:///调用它,然后在外部服务器上尝试了它.没有骰子.

此外,在Java部分,我尝试使用该技巧附加'scr'+'ipt',但它仍然无效.当我使用Firefox的inspect元素检查DOM时,我可以看到它正确加载脚本节点,所以我很困惑.

我也尝试过这个解决方案,它显然是为另一个版本的Selenium(不是webdriver)制作的,因此无法在最低限度下工作:在selenium中加载包含有用测试函数的外部js文件

javascript java selenium selenium-webdriver

17
推荐指数
2
解决办法
3万
查看次数

使用Jquery返回CSS高度,未计算,但已声明

我想,这可能是在以前版本的jQuery的默认值,但是当我打电话.css("height").height(),它返回计算的高度,这是不是我want-我只想要一个高度值,如果它是在CSS文件中明确声明对于那个元素.

就好像它没有被宣布在任何地方一样,也许它可能会'auto'像顶部和左边那样返回...

例如,我的CSS看起来像这样:

.element{
    margin-left:5px;
    color:red;
}
Run Code Online (Sandbox Code Playgroud)

.css("margin-left")返回"5px",同时.css("height")返回,20即使它没有专门设置...

谢谢

html css jquery

7
推荐指数
1
解决办法
3246
查看次数

标签 统计

css ×1

html ×1

java ×1

javascript ×1

jquery ×1

selenium ×1

selenium-webdriver ×1