如何使用Selenium WebDriver在Edge的文本输入字段中输入电子邮件地址?

金·霍曼

我有以下程序:

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Edge;

namespace ConsoleApplication1
{
    static class Program
    {
        static void Main()
        {
            //var driver = new ChromeDriver();
            var driver = new EdgeDriver();
            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
            driver.Navigate().GoToUrl("http://www.cornelsen.de/shop/registrieren-lehrer");
            driver.FindElement(By.Id("email")).SendKeys("[email protected]");
        }
    }
}

当我在Chrome或Edge以外的任何其他浏览器中运行此程序时,则正确输入了电子邮件地址。但是,如果我在Edge中尝试相同的操作,则会缺少“ @”字符。该字段仅显示“ dummyuser.de”。

知道我能做什么吗?

金·霍曼

毕竟这并不像我想的那么容易。alecxe的答案有问题:

  1. arguments[0].setAttribute('value', '...');仅在您首次调用时有效。调用后element.Clear();,它不再起作用。解决方法:arguments[0].value='...';
  2. 该站点不会像对JavaScript那样对JavaScript调用做出反应element.SendKeys();,例如,未调用change事件。解决方法:通过JavaScript将字符串的第一部分发送到最后一个“禁止”字符,然后通过WebElement.SendKeys发送其余部分(按此特定顺序,如果您SendKeys()之后对同一字段执行另一个JavaScript调用,则将如此)也不会发生更改事件)。

我还意识到Edge中还有更多的“禁止”字符,例如重音或东欧字符(我是中欧)。2.的问题是最后一个字符可能是禁止的字符。在这种情况下,我附加一个空格。当然哪个会影响测试用例的行为,但是我没有其他想法。

完整的C#代码:

public static void SendKeys(this IWebElement element, TestTarget target, string text)
{
    if (target.IsEdge)
    {
        int index = text.LastIndexOfAny(new[] { '@', 'Ł', 'ó', 'ź' }) + 1;
        if (index > 0)
        {
            ((IJavaScriptExecutor) target.Driver).ExecuteScript(
                "arguments[0].value='" + text.Substring(0, index) + "';", element);
            text = index == text.Length ? Keys.Space : text.Substring(index);
        }
    }

    element.SendKeys(text);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何确保用户在文本框中输入了电子邮件地址?

来自分类Dev

如何在文本输入HTML中添加多个电子邮件地址

来自分类Dev

如何在文本输入HTML中添加多个电子邮件地址

来自分类Dev

如何允许电子邮件地址输入在Angular中接受多个电子邮件地址

来自分类Dev

单击提交按钮后如何向用户输入的电子邮件地址发送电子邮件?在 php 中

来自分类Dev

在表格中输入正确的电子邮件地址后,如何消除错误消息?

来自分类Dev

如何提示用户在C++中输入正确格式的电子邮件地址?

来自分类Dev

如何在Salesforce文本字段中验证电子邮件地址?

来自分类Dev

如果未在回购配置中设置,如何强制git提示我输入要使用的电子邮件地址?

来自分类Dev

如何使用Selenium Python打印电子邮件地址

来自分类Dev

如何使用Selenium和Python在https://www.nike.com/register中填写电子邮件地址字段

来自分类Dev

如果不是使用 Javascript 或 jquery 的电子邮件地址,则清除输入

来自分类Dev

无论格式如何,都可以从文本字段获取电子邮件地址

来自分类Dev

如何将邮件中的电子邮件地址添加到文本框?

来自分类Dev

如何将邮件中的电子邮件地址添加到文本框?

来自分类Dev

如何替换埋在文本中的仅 URL 和/或电子邮件地址的句点

来自分类Dev

如何从电子邮件地址中检索姓名

来自分类Dev

如何在Go中验证电子邮件地址

来自分类Dev

如何在Firebase中更改电子邮件地址?

来自分类Dev

如何在InAppSettingsKit中设置电子邮件地址?

来自分类Dev

如何在 Selenium 中验证电子邮件用户输入?

来自分类Dev

如何让我当前的 PHP 联系表单检查电子邮件地址输入是否有效?

来自分类Dev

Django 测试使用来自会话输入的电子邮件地址创建用户,assertRedirects 不起作用

来自分类Dev

如何隐藏电子邮件地址

来自分类Dev

如何隐藏电子邮件地址?

来自分类Dev

如何记录单击电子邮件中的链接的用户的电子邮件地址?

来自分类Dev

Python Selenium Webdriver从Java脚本的响应读取电子邮件地址

来自分类Dev

如何使用VBA将文本引用到相应的电子邮件地址

来自分类Dev

如何使用CMD从文本文件中提取电子邮件地址和密码?

Related 相关文章

  1. 1

    如何确保用户在文本框中输入了电子邮件地址?

  2. 2

    如何在文本输入HTML中添加多个电子邮件地址

  3. 3

    如何在文本输入HTML中添加多个电子邮件地址

  4. 4

    如何允许电子邮件地址输入在Angular中接受多个电子邮件地址

  5. 5

    单击提交按钮后如何向用户输入的电子邮件地址发送电子邮件?在 php 中

  6. 6

    在表格中输入正确的电子邮件地址后,如何消除错误消息?

  7. 7

    如何提示用户在C++中输入正确格式的电子邮件地址?

  8. 8

    如何在Salesforce文本字段中验证电子邮件地址?

  9. 9

    如果未在回购配置中设置,如何强制git提示我输入要使用的电子邮件地址?

  10. 10

    如何使用Selenium Python打印电子邮件地址

  11. 11

    如何使用Selenium和Python在https://www.nike.com/register中填写电子邮件地址字段

  12. 12

    如果不是使用 Javascript 或 jquery 的电子邮件地址,则清除输入

  13. 13

    无论格式如何,都可以从文本字段获取电子邮件地址

  14. 14

    如何将邮件中的电子邮件地址添加到文本框?

  15. 15

    如何将邮件中的电子邮件地址添加到文本框?

  16. 16

    如何替换埋在文本中的仅 URL 和/或电子邮件地址的句点

  17. 17

    如何从电子邮件地址中检索姓名

  18. 18

    如何在Go中验证电子邮件地址

  19. 19

    如何在Firebase中更改电子邮件地址?

  20. 20

    如何在InAppSettingsKit中设置电子邮件地址?

  21. 21

    如何在 Selenium 中验证电子邮件用户输入?

  22. 22

    如何让我当前的 PHP 联系表单检查电子邮件地址输入是否有效?

  23. 23

    Django 测试使用来自会话输入的电子邮件地址创建用户,assertRedirects 不起作用

  24. 24

    如何隐藏电子邮件地址

  25. 25

    如何隐藏电子邮件地址?

  26. 26

    如何记录单击电子邮件中的链接的用户的电子邮件地址?

  27. 27

    Python Selenium Webdriver从Java脚本的响应读取电子邮件地址

  28. 28

    如何使用VBA将文本引用到相应的电子邮件地址

  29. 29

    如何使用CMD从文本文件中提取电子邮件地址和密码?

热门标签

归档