我正在使用一个运行 Javascript 的页面源来打印页面上的文本。这是我所说的来源的片段:
var display_session = get_cookie("LastMRH_Session");
if(null != display_session) {
document.getElementById("sessionDIV").innerHTML = '<BR>The session reference number: ' + display_session + '<BR><BR>';
document.getElementById("sessionDIV").style.visibility = "visible";
}
当 display session
变量不为 null 时,页面会显示该变量的值,但我想知道是否有办法在我的 Selenium WebDriver 代码中利用该变量。在 Javascript 中使用此代码的函数不会返回 display_session
变量,并且我无法更改页面源。我根据帖子here尝试了这个但它抛出异常。
JavascriptExecutor js = (JavascriptExecutor) driverRp;
Object result = js.executeScript("return display_session");
System.out.println("sessionId = "+result);
有什么建议吗?
最佳答案
想通了。需要追踪 cookie 本身,而不是弄乱 Javascript 变量。
Cookie cookie = driverRp.manage().getCookieNamed("LastMRH_Session");
String sessionId = cookie.getValue().toUpperCase();
System.out.println("sessionId = "+sessionId);
在此找到解决方案post .
关于java - 使用 Selenium WebDriver 从 Javascript 源中提取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27067742/