webdriver边缘:输入元素的dispatchEvent不起作用 [英] webdriver edge: dispatchEvent for input element not working
本文介绍了webdriver边缘:输入元素的dispatchEvent不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
webdriver边缘:输入元素的dispatchEvent不起作用:
webdriver edge: dispatchEvent for input element not working:
例如,设置一个隐藏的输入值,然后触发更改事件:
For example, set a hidden input value, then trigger change event:
((JavascriptExecutor)driver).executeScript(
"arguments[0].setAttribute('value', 'hello')", inputElem);
((JavascriptExecutor)driver).executeScript(
"arguments[0].dispatchEvent(new Event('change'))", inputElem);
事件侦听器未触发.
由于输入元素被隐藏,SendKeys不起作用.
SendKeys not working since the input element is hidden.
推荐答案
我使用以下代码进行了测试,可以在MS Edge上正常工作.
I made a test with code below is working fine with MS Edge.
C#代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver = new EdgeDriver();
driver.Navigate().GoToUrl(@"C:\Users\panchals\Desktop\tests\test1.html");
try
{
RemoteWebDriver r = (RemoteWebDriver)driver;
String s1 = "document.getElementsByName('ttl').item(0).value = '123';";
r.ExecuteScript(s1);
r.ExecuteScript("arguments[0].dispatchEvent(new Event('change'))", driver.FindElement(By.Name("ttl")));
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadKey();
driver.Quit();
driver.Close();
}
}
}
HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script>
function abc()
{
alert("OnChange event called successfully.");
}
</script>
</head>
<body>
<form action="">
<label for="title"><b>Title :</b></label>
<input type="hidden" name="ttl" onchange="abc();" value=""><br>
</form>
</body>
</html>
MS Edge中的输出:
Output in MS Edge:
这篇关于webdriver边缘:输入元素的dispatchEvent不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文