代码之家  ›  专栏  ›  技术社区  ›  StealthRT

使用Selenium、jQuery和RFT自动化数据更改触发问题

  •  2
  • StealthRT  · 技术社区  · 7 年前

    嘿,我正在使用RFT,以便在Pega网站页面上自动生成一个页面。然而,自动化似乎无法触发我正在插入字符串的输入的更改事件。这个输入框似乎位于 在…内 iframe 也许这就是为什么它在失去对输入框的关注时不触发onchange事件的原因?

    RFT确实使用 在他们的程序中与网页进行交互。

    输入框的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源代码,这样我就可以发射这个 改变事件 在代码中手动执行。

    似乎当我点击文本框,输入几个字母,然后点击同一表单上的选项卡或另一个输入框时,就会触发某种类型的事件/函数,填充页面上的标签。

    我一直在寻找的东西。js源代码将是一个名为 刷新(…) 或者类似于 刷新:函数(…)。。。 _刷新:函数(…)。。。 但我还没有找到任何类似于它发送到该函数的参数的东西。

    0 回复  |  直到 7 年前
    推荐文章