Автоматизация обработки данных с помощью Selenium, jQuery и RFT - PullRequest
0 голосов
/ 11 октября 2018

Привет всем, я использую RFT для автоматизации страницы на странице сайта Pega.Тем не менее, кажется, что автоматизация не может инициировать событие изменения ввода, в которое я вставляю строку текста.Кажется, это поле ввода находится внутри iframe , и, возможно, именно поэтому оно не запускает событие onchange при потере фокуса на этом поле ввода?

RFTиспользует Selenium в своей программе для взаимодействия с веб-страницей.

HTML-код поля ввода:

<input 
    data-id="204083727717650" 
    data-ctl="["TextInput"]" 
    id="BBOX" 
    maxlength="15" 
    validationtype="required" 
    value="" 
    name="$PpyWorkPage$pBBOX$pBBOX" 
    class="leftJustifyStyle" 
    data-change="[["refresh", 
                   ["otherSection",
                    "RecordInformation", 
                    "", 
                    "&amp;=", 
                    "", 
                    "BBOXOnChange,",
                    ":event",
                    "",
                    "pyWorkPage.BBOX"
                   ]
                 ]]" 
    type="text">

Код Selenium, который я пробовал, таков:

driver.switchTo().frame(driver.findElement(By.name("PegaGadget")));     

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("BBOX")));
final WebElement BBOXInputBox = driver.findElement(By.id("BBOX"));

BBOXInputBox.click();
BBOXInputBox.click();
Thread.sleep(2000);
BBOXInputBox.sendKeys("204083727717650");
Thread.sleep(2000);
BBOXInputBox.sendKeys(Keys.TAB);
Thread.sleep(2000);
BBOXInputBox.sendKeys(Keys.BACK_SPACE);
Thread.sleep(2000);
BBOXInputBox.sendKeys("1");
Thread.sleep(200);
BBOXInputBox.sendKeys(Keys.TAB);
Thread.sleep(2000);

Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.id("FirstName_U")), 5, 5).click().build().perform();

driver.findElement(By.id("FirstName_U")).sendKeys("something");

И я изо всех сил стараюсь найти эту функцию выше в своих 30 или около того файлах .js для любой одной страницы.

Так что кто-то более знающий, чем я, в областиэтот тип кодирования в JS, пожалуйста, настройте и дайте мне знать, что мне нужно искать в исходном коде .js, чтобы я мог вручную запустить это событие изменения в коде.

ItКажется, когда я нажимаю на текстовое поле, вводим несколько букв, а затем либо вкладываю, либо нажимаю на другое поле ввода в той же форме, запускается какой-то тип события / функции, который заполняет метку на странице.

ЧтоЯ искал в пределахИсходным кодом .js может быть функция с именем refresh (...) или что-то вроде refresh: function (...) ... или _refresh:функция (...) ... но я не смог найти ничего похожего на параметры, передаваемые этой функции.

...