gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:50:14 25 4
gpt4 key购买 nike

我有以下程序:

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("dummy@user.de");
}
}
}

当我在 Chrome 或除 Edge 之外的任何其他浏览器中运行此程序时,电子邮件地址输入正确。但是如果我在 Edge 中尝试同样的事情,“@”字符就会丢失。该字段仅显示“dummyuser.de”。

知道我能做什么吗?

最佳答案

作为解决方法,您可以直接通过 ExecuteScript() 设置 input 值:

IWebElement email = driver.FindElement(By.Id("email"));

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
string script = "arguments[0].setAttribute('value', 'arguments[1]');";
js.ExecuteScript(script, email, "dummy@user.de");

或者,您可以创建一个假输入元素,其预定义值等于电子邮件地址。选择此输入中的文本,复制并粘贴到目标输入中。

不漂亮,但应该只是一种解决方法:

// create element
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
string script = @"
var el = document.createElement('input');
el.type = 'text';
el.value = 'arguments[0]';
el.id = 'mycustominput';
document.body.appendChild(el);
";
js.ExecuteScript(script, "dummy@user.de");

// locate the input, select and copy
IWebElement myCustomInput = driver.FindElement(By.Id("mycustominput"));
el.SendKeys(Keys.Control + "a"); // select
el.SendKeys(Keys.Control + "c"); // copy

// locate the target input and paste
IWebElement email = driver.FindElement(By.Id("email"));
email.SendKeys(Keys.Control + "v"); // paste

关于c# - 如何使用 Selenium WebDriver 在 Edge 的文本输入字段中输入电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35342869/

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