【问题标题】:Attempting to input data to input tag but Sendkeys not working尝试将数据输入到输入标签但 Sendkeys 不起作用
【发布时间】:2018-07-10 17:44:50
【问题描述】:

我正在尝试为我工作的网站自动化申请流程。我正在使用 selenium web-driver 和 node.js。我可以浏览不同的页面,但无法在输入字段中获取任何文本。有人可以帮助我吗?请在下面查看我的代码。

"use strict";

var webdriver = require('selenium-webdriver');
var browser = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();

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

function handleFailure(err) {
    console.error('Something went wrong\n', err.stack, '\n');
    closeBrowser();
}

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(result) {
        return result[0];
    });
}

function closeBrowser() {
    browser.quit();
}

browser.get('https://qa-ind.mahealthconnector.optum.com/individual/');
browser.findElement(webdriver.By.id('enrollment')).click();
browser.wait(createOptumID, 100000).then(clickLink);
browser.wait(newOptumID, 100000).then(clickLink);
browser.findElement(webdriver.By.id('firstNameId_input')).sendKeys('Erin');

【问题讨论】:

    标签: javascript node.js selenium-webdriver


    【解决方案1】:

    使用 webdriver 对象的executeScript 方法,如下所示:

    //runs the script get the element by id then set it's value attribute to 'Erin'
    webdriver.executeScript("document.getElementById('firstNameId_input').setAttribute('value', 'Erin')");
    

    【讨论】:

    • @PaulPinho 不客气。我发现在使用 Selenium 时,executeScript 是一个很好的工具,可以利用 javascript 执行许多必要的自动化操作。
    【解决方案2】:

    您可以使用webelement的getAttribute方法获取输入字段的值
    browser.findElement(webdriver.By.id('firstNameId_input')).getAttribute("value");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2019-02-23
      • 2017-01-01
      相关资源
      最近更新 更多