使用executeSript给Input Tag赋值时出错,提交表单时出错

时间:2018-07-13 15:33:32

标签: javascript node.js selenium-webdriver

进入“创建新的Optum ID”页面后,我将使用executeSript方法为输入标签提供值。但是,当我单击“提交”按钮时,它无法识别输入标记中的任何文本,并且页面上出现错误,提示我填写必填字段。

页面顶部: 错误-您必须先更正突出显示的错误,然后才能继续。

名字输入框: 错误-错误必须输入名字。

"use strict";

var webdriver = require('selenium-webdriver');

var browser = new webdriver.Builder()
    .withCapabilities(webdriver.Capabilities
    .chrome())
    .build();

var firstName = 'Erin';

function clickLink(link) {
    link.click();
}

function createOptumID(){
    return browser.findElements(webdriver.By.id('createOptumID'))
    .then(function(result){
        return result[0];
    });
}

function newOptumID() {
    return browser.findElements(webdriver.By.id('firstNameId_input'))
    .then(function(firstNameInput) {
        return firstNameInput[0];
    });
}

function optumIdProfile() {
    browser.executeScript("document.getElementById('firstNameId_input').setAttribute('value', '" + firstName + "')");
};

function submitOptumID(){
    browser.findElement(webdriver.By.id("agreeButtonId")).click();
}

browser.get('https://mahealthconnector.optum.com/individual/');
browser.findElement(webdriver.By.id('enrollment')).click();
browser.wait(createOptumID, 100000).then(clickLink);
browser.wait(newOptumID, 100000).then(optumIdProfile).then(submitOptumID);

1 个答案:

答案 0 :(得分:0)

您应使用sendKeys()设置文本框的值。请参阅下面的代码。

function optumIdProfile() {
    return browser.findElement(browser.By.id('firstNameId_input')).sendKeys(firstName);
};