代码之家  ›  专栏  ›  技术社区  ›  paul

javascript执行器在尝试访问窗口时给出null。属性名称

  •  0
  • paul  · 技术社区  · 6 年前

    如果我键入 window 在Chrome控制台中,按enter键。

    但当我试图通过访问相同的属性时 Javascript Executor 它给我空值。

    我试过:

    String homepage = jse().executeScript("window.origin", "found homepage").toString();
    System.out.println("home page is  "+homepage);
    

    String location = "function show_homepage() {var homepage = window.location.origin;return homepage;}"
    String homepage = jse().executeScript(location, "found if email validated or not").toString();
    System.out.println("Answer is "+homepage);
    

    参考号:

    1. window object from selenium webdriver is empty array
    2. https://www.softwaretestingmaterial.com/javascriptexecutor-selenium-webdriver/
    3. View list of all JavaScript variables in Google Chrome Console

    enter image description here

    0 回复  |  直到 6 年前
        1
  •  0
  •   paul    6 年前

    我找到了解决办法。我犯的错误是,我没有在JS代码段中返回函数。我又加了一行 return show_homepage(); 它成功了。

    String location = "function show_homepage() {"+
                "var homepage = window.location.origin;"+
                "return homepage;"+
                "}"+
                "return show_homepage();";
    Object str = js().executeScript(location, "");
    System.out.println(str.toString());