38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import json
|
|
import os
|
|
|
|
from selenium import webdriver
|
|
from selenium.webdriver.chrome.options import Options
|
|
|
|
|
|
options = Options()
|
|
options.add_experimental_option("debuggerAddress", os.environ.get("WEHAGO_CHROME_DEBUGGER_ADDRESS", "127.0.0.1:9225"))
|
|
driver = webdriver.Chrome(options=options)
|
|
driver.set_script_timeout(10)
|
|
|
|
script = r"""
|
|
const rg = Grids && Grids.realgrid;
|
|
const ids = [75, '75', 327, '327'];
|
|
const methods = ['getCurrent','fullItemCount','getColumns','getValues','getDataRow','getDisplayValues','getDisplayValuesOfRow','setCurrent','setSelectionItem','getSelectionItem','getSelectionItems'];
|
|
const out = {};
|
|
for (const m of methods) {
|
|
out[m] = [];
|
|
for (const id of ids) {
|
|
try {
|
|
if (!rg || typeof rg[m] !== 'function') { out[m].push({id, missing:true}); continue; }
|
|
let value;
|
|
if (m === 'getValues' || m === 'getDataRow' || m === 'getDisplayValues' || m === 'getDisplayValuesOfRow') value = rg[m](id, 0);
|
|
else if (m === 'setCurrent') value = rg[m](id, {itemIndex: 5, column: 'Code'});
|
|
else if (m === 'setSelectionItem') value = rg[m](id, 5);
|
|
else value = rg[m](id);
|
|
out[m].push({id, ok:true, value});
|
|
} catch(e) {
|
|
out[m].push({id, error:String(e).slice(0,300)});
|
|
}
|
|
}
|
|
}
|
|
return out;
|
|
"""
|
|
print(json.dumps(driver.execute_script(script), ensure_ascii=False, indent=2)[:80000])
|
|
driver.quit()
|