我正在进行测试,它将检查页面上是否存在链接,并且它正在引用正确的页面(动态生成的链接)。要测试我想在Selenium中进行AJAX调用的链接,要从服务器获取正确的URL并进行比较。我的挑战是从Selenium的AJAX调用中获取价值。
JavascriptExecutor jse = (JavascriptExecutor)driver;
String jsCode =
"var str = $.get('/User/GetDynamicURL/', function (result) {"
+ "console.log('result: ' + result); "
+ "return result;"
+ "})"
+ "return str;";
String dynamicURL = (String) jse.executeScript(jsCode);
虽然我在控制台中看到预期的输出,但我的代码不起作用。 我得到例外:
java.lang.ClassCastException: com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to java.lang.String
当我执行代码时:
var str = $.get('/User/GetDynamicURL/', function (result) {
console.log('result: ' + result);
return result;
});
str;
对于我浏览器控制台中的str
我得到一个看起来像这样的对象:
{readyState: 1, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
和str.responseJSON
返回所需的网址
请告诉我如何修复我的代码。 谢谢!
答案 0 :(得分:0)
链接必须是一个webelement,对吧?所以你可以把它的href值与预期的URL进行比较(可能是一个字符串):
{{sanitisedLocation}}