gpt4 book ai didi

javascript - Selenium - send_keys() 发送不完整的字符串

转载 作者:搜寻专家 更新时间:2023-10-31 23:37:21 31 4
gpt4 key购买 nike

我的问题:我有一个填充字段的方法,但问题是 selenium 没有将完整的字符串发送到该字段,所以我的断言在验证时失败了。

我的代码:

var webdriver = require('selenium-webdriver');
var casual = require('casual');
var expect = require('chai').expect;
var By = webdriver.By;

exports.addPropuesta = function (driver) {

var first_name = casual.first_name;

driver.findElement(By.xpath("//a[contains(text(),'Añadir Propuesta Test')]")).click();

name_field = driver.findElement(By.name('nombre'));
name_field.sendKeys(first_name);

driver.findElement(By.css("Input[type='submit']")).click();

driver.findElement(By.css('.table')).getText().then(function(table_content){

expect(table_content).to.include(first_name);

});
};

最佳答案

看起来像this是一个常见问题。

在尝试解决方法之前,作为健全性检查,请确保在您发送 key 时输入字段已准备好接收输入。您也可以尝试在调用 SendKeys 之前清除该字段。我假设您看到的是您的字符串被 chop 了,而不是字符丢失或以某些工件为前缀(例如占位符文本或先前测试的剩余输入)。

一些解决方法,如果这不起作用:

  1. 使用 JavaScript 设置输入字段的值,而不是调用 SetKeys。在我执行此操作的某些网站上,输入值实际上不会被识别,除非我也触发输入更改事件。

    C# 示例。希望您唯一需要的更改是将 ExecuteScript 改成 executeScript。

    driver.ExecuteScript("var exampleInput = document.getElementById('exampleInput'); exampleInput.value = '" + testInputValue + "'; exampleInput.dispatchEvent(new Event('change'));");

    当然,您可以将其分成两行,第一行设置值,第二行分派(dispatch)事件。

  2. 单独发送每个 key 。这是我在有关此问题的线程中多次看到的解决方法。

    for (var i = 0; i < first_name.length; i++) {
    name_field.sendKeys(first_name.charAt(i));
    }

https://github.com/angular/protractor/issues/3196
https://github.com/angular/protractor/issues/2019
等等等等。如果您想为您的问题寻找其他可能的解决方案,可以通过简单搜索“webdriver sendkeys 不等待所有 key ”找到更多主题。

关于javascript - Selenium - send_keys() 发送不完整的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40985765/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com