webdriver edge: dispatchEvent for input element not working

感情迁移 提交于 2019-12-25 00:21:20

问题


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);

event listeners were not triggered.

SendKeys not working since the input element is hidden.


回答1:


I made a test with code below is working fine with MS Edge.

C# Code:

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 code:

<!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>

Output in MS Edge:



来源:https://stackoverflow.com/questions/56727266/webdriver-edge-dispatchevent-for-input-element-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!