Привет всем, я использую 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",
"",
"&=",
"",
"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:функция (...) ... но я не смог найти ничего похожего на параметры, передаваемые этой функции.