Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数";document.getElementById();工作是否如预期的那样_Javascript - Fatal编程技术网

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好的,我会尝试一些方法,如果有效的话,我会更新我的答案