javascript函数";document.getElementById();工作是否如预期的那样
我正在进行一个浏览器记录测试,在该测试中,我使用 自动搜索触发功能javascript函数";document.getElementById();工作是否如预期的那样,javascript,Javascript,我正在进行一个浏览器记录测试,在该测试中,我使用 自动搜索触发功能 document.getElementById('InputFieldWithSearchFunction')。value=“Saurav” 但如果我将值设置为上述字段,则不会触发搜索 请提供帮助。仅设置该值不会调用输入字段的onchange和/或oninput事件侦听器。自动搜索触发器可能正在侦听此事件 您可以手动将这两个事件分派到输入字段: const elem=document.getElementById(“具有搜索功能
document.getElementById('InputFieldWithSearchFunction')。value=“Saurav”代码>
但如果我将值设置为上述字段,则不会触发搜索
请提供帮助。仅设置该值不会调用输入字段的onchange
和/或oninput
事件侦听器。自动搜索触发器可能正在侦听此事件
您可以手动将这两个事件分派到输入字段:
const elem=document.getElementById(“具有搜索功能的InputField”);
//创建onchange事件
const onchangeEvent=document.createEvent(“HTMLElements”);
initEvent(“onchange”,false,true);
//创建oninput事件
const oninputEvent=document.createEvent(“HTMLElements”);
initEvent(“oninput”,false,true);
//将事件分派到输入字段
要素dispatchEvent(onchangeEvent);
要素dispatchEvent(oninputEvent);
这绝对适用于Chrome和所有使用Chrome的浏览器,我没有测试任何其他浏览器,这将取决于您
有关手动分派从此答案中获取的事件的信息:
仅设置该值不会调用输入字段的onchange
和/或oninput
事件侦听器。自动搜索触发器可能正在侦听此事件
您可以手动将这两个事件分派到输入字段:
const elem=document.getElementById(“具有搜索功能的InputField”);
//创建onchange事件
const onchangeEvent=document.createEvent(“HTMLElements”);
initEvent(“onchange”,false,true);
//创建oninput事件
const oninputEvent=document.createEvent(“HTMLElements”);
initEvent(“oninput”,false,true);
//将事件分派到输入字段
要素dispatchEvent(onchangeEvent);
要素dispatchEvent(oninputEvent);
这绝对适用于Chrome和所有使用Chrome的浏览器,我没有测试任何其他浏览器,这将取决于您
有关手动分派从此答案中获取的事件的信息:
这样想吧。。。通过直接使用JS设置值,您正在缩短实际用户将使用的典型UI,从而导致此问题。如果您试图编写与用户行为类似的测试,那么应该少用JS(几乎永远不要),现在您可以明白为什么了
在Java中,您可以这样做
driver.findElement(By.id("InputFieldWIthSearchFunctionality")).sendKeys("Saurav");
这将导致对您的案件进行搜索。这样想吧。。。通过直接使用JS设置值,您正在缩短实际用户将使用的典型UI,从而导致此问题。如果您试图编写与用户行为类似的测试,那么应该少用JS(几乎永远不要),现在您可以明白为什么了
在Java中,您可以这样做
driver.findElement(By.id("InputFieldWIthSearchFunctionality")).sendKeys("Saurav");
这将导致在您的情况下启动搜索。当用JavaScript更新
字段时,不会触发“更改”和“输入”事件。您必须显式地触发事件。问题与.getElementById()
函数完全无关。当
字段被JavaScript更新时,不会触发“更改”和“输入”事件。您必须显式触发事件。问题与.getElementById()
函数完全无关。Onchange()没有帮助,它甚至无法识别对输入所做的更改field@Saurav好的,如果worksOnchange()不起作用,我会尝试一些方法并更新我的答案,它甚至无法识别对输入所做的更改field@Saurav好的,我会尝试一些方法,如果有效的话,我会更新我的答案