Selenium sendKeys в поле ввода пароля не принимается браузером - PullRequest
0 голосов
/ 29 июня 2018

Попробуйте автоматизацию сети Selen. sendKeys ("123456") в поле ввода пароля, заполните smsCode. затем нажмите кнопку отправки. Это дает подсказки ошибки "пароли банковской карты должны быть 6 числами, пожалуйста заполните это снова." Я пробовал это три вида отправки, но он дает те же советы по ошибкам:

var passwordField = WDS.browser.findElement(pkg.By.id('_ocx_password'))
passwordField.click()

passwordField.sendKeys(["123456"])

passwordField.sendKeys("123456")

passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD1)
passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD2)
passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD3)
passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD4)
passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD5)
passwordField.sendKeys(org.openqa.selenium.Keys.NUMPAD6)

Может кто-нибудь сказать мне, как с этим справиться и успешно представить? Большое спасибо.

Подробнее о вопросе, я выдает элементную структуру поля ввода паролей и кнопку отправки ниже:

<div id="debitCard_password">
<input type="text" onfocus="this.type='password';pgeCtrl.openProt('password1530252XX13701',this.id);pgeCtrl.setCX(this);" onkeydown="pgeCtrl.setSX(event,'',this);" onclick="pgeCtrl.setCX(this)" onblur="pgeCtrl.closeProt('password15302529613701',this.id)" id="_ocx_password" style="ime-mode:disabled" tabindex="2" class="ocx_atm" value=""></div>

<p style="padding-top:0px">
                                <input id="btnCardPay" name="btnCardPay" type="button" value="开通并付款" class="btn_blue139p CardDefault">
                            </p >

Я не могу воспроизвести сцены с помощью ручного ввода.

-------------------------------- что-то новое ------------- -----------------

enter image description here

Когда я вручную ввожу пароли, я обнаруживаю, что он определяет количество набранных слов.

enter image description here

И автопечатание слишком короткое, чтобы определить количество слов. enter image description here

Затем я ставлю строку после sendKeys: java.lang.Thread.sleep (5000). Но слова исчезли, когда начался сон, поэтому количество набранных слов равно 0.

Я хочу использовать другой способ отправки.

var passwordField = WDS.browser.findElement(pkg.By.id('_ocx_password'))
var actions = new org.openqa.selenium.interactions.Actions(WDS.browser)
actions.keyDown(passwordField, "123456")
actions.pause(1000);

Выдает следующие ошибки:

TypeError: Невозможно вызвать метод [jdk.internal.dynalink.beans.OverloadedDynamicMethod Действия org.openqa.selenium.interactions.Actions.keyDown (Ключи) Действия org.openqa.selenium.interactions.Actions.keyDown (WebElement, Keys)

var errorMsg = new java.lang.String()
var e = new java.awt.AWTException(errorMsg)
try {
    var robot = new java.awt.Robot()

    var loc = new org.openqa.selenium.Poin()
    loc = passwordField.getLocation();
    WDS.log.info(loc.getX()+2, loc.getY()+2)

    // Simulate a key press
    robot.mouseMove(loc.getX()+2, loc.getY()+2);
    robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);
    robot.keyPress(java.awt.event.KeyEvent.VK_1);
    robot.keyPress(java.awt.event.KeyEvent.VK_3);
    robot.keyPress(java.awt.event.KeyEvent.VK_5);
    robot.keyPress(java.awt.event.KeyEvent.VK_2);
    robot.keyPress(java.awt.event.KeyEvent.VK_4);
    robot.keyPress(java.awt.event.KeyEvent.VK_6);
    robot.delay(10000);
    robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK);
    } catch (e) {
        e.printStackTrace()
        WDS.log.info(e)
}

Выдает ошибку вот так:

java.lang.ClassNotFoundException: org.openqa.selenium.Poin.

Поэтому мне интересно, что является ключом к решению этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...