gpt4 book ai didi

selenium-webdriver - 使用 c# selenium webdriver 将文本发送到具有 onkeypress 事件的文本框时出现问题

转载 作者:行者123 更新时间:2023-12-04 08:00:31 24 4
gpt4 key购买 nike

我有一个具有 onkeypress 事件的文本框,该事件在将值输入到文本框时执行页面渲染。在这里,我使用 selenium webdriver 来填充文本框。在填充文本框之前,我使用的是 textbox.clear()。所以 onkeypress 事件被调用并呈现页面。因此文本框控件从 webdriver 实例中删除。

在 onkeypress 事件发生后,该元素未在 webdriver 中列出。
这是特定文本框的源标签:

<input id="ctl00_ctl00_ContentPlaceHolder1_cphMainContent_wzrDREvent_txtNftnTime" class="OpCenter_DateBox" type="text" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ctl00$ContentPlaceHolder1$cphMainContent$wzrDREvent$txtNftnTime\',\'\')', 0)" name="ctl00$ctl00$ContentPlaceHolder1$cphMainContent$wzrDREvent$txtNftnTime">

你可以看到这里使用的 onkeypress 事件。
请提出一些想法来填充文本框中的值。

我正在使用以下代码来填充我的文本框:
element.Clear();
element.SendKeys(value);

提前致谢。

最佳答案

您可能正在查看 onchange执行时触发事件 clear() .

一种解决方案是在一个操作中清除和设置文本,而不是在单独的调用中。您可以使用 Actions 来做到这一点。类,下面的 C# 扩展方法显示了如何。

一旦您从文本字段元素上失去焦点,就会触发 onchange 事件。

public static class WebElementExtensions
{
public void ClearAndSetText(this IWebElement element, string text)
{
Actions navigator = new Actions(driver);
navigator.Click(element)
.SendKeys(Keys.End)
.KeyDown(Keys.Shift)
.SendKeys(Keys.Home)
.KeyUp(Keys.Shift)
.SendKeys(Keys.Backspace)
.SendKeys(text)
.Perform();
}
}

关于selenium-webdriver - 使用 c# selenium webdriver 将文本发送到具有 onkeypress 事件的文本框时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16298233/

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