gpt4 book ai didi

selenium - 而不是 sendkeys 最后从剪贴板复制的项目被输入到元素中

转载 作者:行者123 更新时间:2023-12-04 15:37:24 24 4
gpt4 key购买 nike

在我的应用程序中,我有一个电子邮件字段,我正在使用 sendkeys 发送电子邮件地址,但不是 sendkeys selenium 插入剪贴板中的值。有人遇到过这个问题吗?

代码:

WebElement email=driver.findElement(By.xpath("//div[@class='auth-container']//input[@type='text']");
email.sendKeys("sample@sample.com")

因为 Id 是动态的,所以我从父容器中获取了 xpath

最佳答案

在 Node.js javascript 中,在匈牙利语键盘上,sendKeys 中的 @ 符号已替换为剪贴板的内容。如果您尝试将“@”宽度替换为其 unicode 值“\u0040”,结果是相同的,sendKeys 已替换为剪贴板的内容,即使尝试使用棘手的 Key.chord( Key.ALT, "v", Key.NULL ) 形式,它什么都不做。

// if clipboard contains XXX 
WebElement email=driver.findElement(By.xpath("//div[@class='auth-container']//input[@type='text']");
email.sendKeys("sample@sample.com")
// result: field content is sampleXXXsample.com

如果你在剪贴板上加上@符号,效果很好,但你不能保证测试自动化中剪贴板的内容。有一种方法可以将 key 发送到事件项。

我会避免用javascript填充字段,如上所述,因为javascript直接填充它,不关心字段状态,即使字段不活动也用值填充它,不触发事件等,javascript是蛮力填充字段。

发送。 key 。有一个 npm 包。它是 powershell 发送 key 的包装器,因此仅适用于 Windows。

npm install -g sendkeys

和测试代码:

const sendkeys = require( 'sendkeys');
WebElement email=driver.findElement(By.xpath("//div[@class='auth-container']//input[@type='text']");
email.sendKeys("sample")
// result: cursor is in the field, field contains 'sample'
sendkeys.sync( "@sample.com" )
// result: field content is 'sample@sample.com'

关于selenium - 而不是 sendkeys 最后从剪贴板复制的项目被输入到元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59317143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com