Захватите аргументы вызова javascript onclick () с помощью Selenium Java - PullRequest
0 голосов
/ 20 мая 2019

Я пишу сценарий селена в Java для захвата аргументов, переданных в вызове / методе JavaScript onclick (). Прикрепленное изображение, на котором выделено название метода / функции.

on click method

В этом методе есть некоторые аргументы / параметры, которые я хочу записать, как мы фиксируем любой селектор CSS. Я не могу этого сделать. В прикрепленном ниже изображении я хочу захватить такие аргументы, как «content_ids», «content_type», «value», «currency» и «content_name». Пожалуйста, предложите мне решение.

method parameters

1 Ответ

0 голосов
/ 20 мая 2019

Я предполагаю, что это можно сделать с помощью исполнителя Javascript, так как метод onclick назначается в качестве функции имени функции productAddToCardForm.submit = function(button, url) { ...... в javascript.

WebElement button  = driver.findElement(By.Xpath("//button[@title='Add to Bag']"));
// get the onclick function name trimming the "("
String onclickFunctionName = button.getAttribute("onclick").split("(")[0];

// Use javascript executor to get the value of the onclick function
JavascriptExecutor js = (JavascriptExecutor) driver;
// return value of productAddToCardForm.submit
String function  = js.executeScript("return " + onclickFunctionName); // return function(button, url) { ......

// Do String split and matching to extract required values from the function string.  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...