Попробуйте автоматизацию сети 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 >
Я не могу воспроизвести сцены с помощью ручного ввода.
-------------------------------- что-то новое ------------- -----------------
Когда я вручную ввожу пароли, я обнаруживаю, что он определяет количество набранных слов.
И автопечатание слишком короткое, чтобы определить количество слов.
Затем я ставлю строку после 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.
Поэтому мне интересно, что является ключом к решению этой проблемы.