Я попытался передать объект из сценария java в селеновый код java, я получил WebDriverException, неизвестная ошибка: необработанная ошибка инспектора: {"code": - 32000, "message": "Цепочка ссылок на объект слишком долго"}. Мой код указан ниже.
String cssVariable = "var link = document.createElement('link');link.rel = 'stylesheet';link.href = 'https://js.arcgis.com/3.18/esri/css/esri.css';";
String cssDoc = " document.body.appendChild(link);";
String jsScript = cssVariable + cssDoc+ "document.body.appendChild(document.createElement(\"script\")).src = 'https://js.arcgis.com/3.31/';";
String js = jsScript + "var iDiv = document.createElement('div');\r\n" +
"iDiv.id = 'mapDiv';\r\n" +
"iDiv.className = 'block';\r\n" +
"document.getElementsByTagName('body')[0].appendChild(iDiv);";
String js1 = "var spVal;var map;\r\n"+
"var width = 123.26;\r\n"+
"var height = 126.5;\r\n"+
"require([\"esri/map\",\"esri/geometry/Point\",\"esri/SpatialReference\",\"esri/geometry/Extent\",\"esri/geometry/screenUtils\"],function(Map,Point,SpatialReference,Extent,screenUtils){\r\n" +
" console.log('map loaded', Map);\r\n" +
"map = new Map(\"mapDiv\",{\r\n" +
" basemap: \"streets\",\r\n" +
" center: [-95.249, 38.954],\r\n" +
" zoom: 5,\r\n" +
" slider: false\r\n" +
" });"+
"var mappoint=new Point(-118.15, 33.80, new SpatialReference({ wkid: 4326 }));"+
"console.log('mappoint==',mappoint);"+
"var extent = new esri.geometry.Extent({\r\n" +
" \"xmin\":-122.68,\"ymin\":45.53,\"xmax\":-122.45,\"ymax\":45.6,\r\n" +
" \"spatialReference\":{\"wkid\":4326}\r\n" +
" });"+
"console.log('extent==', extent);\r\n" +
" var sp = esri.geometry.toScreenPoint(extent,width,height,mappoint);\r\n" +
" spVal = sp;console.log('sp===', sp);" +
" });"+
"return spVal;";
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript(js);
Thread.sleep(3000);
Object screenxy = executor.executeScript(js1);
System.out.println(screenxy);