无法使用WebDri触发输入事件

2024-09-30 06:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个定义如下的事件处理程序:

$('#client-input-street1').on('input', function() {
    console.debug('street1 text changed');

    // Do some other dynamic stuff
});

其中,client-input-street1是一个简单的输入元素:

^{pr2}$

我无法使用WebDriver触发此“输入”事件。我尝试过各种技术,比如在client-input-street1文本框中添加制表符,然后发送键,然后切换到另一个表单控件,如here

street1_input = self.driver.find_element_by_id('client-input-street1')
street1_input.send_keys('3229 NW Pittock Dr')
street1_input.send_keys(Keys.TAB)

我尝试过使用Javascript显式设置该值:

self.driver.execute_script("document.getElementById('client-input-street1').setAttribute('value', '3229 NW Pittock Dr')")

我尝试过单击文本框,然后发送密钥,然后单击另一个元素。在

我在'input'处理程序中将一些内容呈现到DOM中,我的Selenium测试需要检查动态内容中的一些值。但我在等待加载内容时遇到了TimeoutException:

    ec = EC.presence_of_element_located((By.ID, 'client-address-suggestions-list'))
    address_suggestions_list = wait.until(ec)

到目前为止,一切都没有奏效。任何想法都将不胜感激。在


Tags: selfclientsend处理程序元素内容inputdriver
1条回答
网友
1楼 · 发布于 2024-09-30 06:22:46

这是我代码中的一个bug,不是Selenium的问题。我在这里发布我的答案,以防它帮助其他人在运行WebDriver时没有触发更改事件(其中有很多关于StackOverflow的问题)。如果在执行Selenium测试期间,Javascript异常在任何地方抛出(并且没有捕捉到异常),它可能会停止Javascript的执行,这可能会使事件绑定不发生。没有事件绑定,没有事件被触发。在

相关问题 更多 >

    热门问题