gpt4 book ai didi

java - 当没有可用的提交按钮时,将 key 发送到表单字段时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:12 24 4
gpt4 key购买 nike

我正在为一个学校项目研究 Selenium WebDriver。我目前正在创建一个 Maven Web 应用程序(使用 jsp/servlet),该应用程序可以通过网络抓取 tripadvisor 数据,将其放入数据库,然后根据用户过去的行为对数据进行排序。

当我必须将 key 提交到 tripadvisor 搜索栏时,我的问题就开始了。没有提交按钮,所以我必须使用 org.openqa.selenium.Keys 导入。这是我尝试过的代码:

driver.findElement(By.xpath("//span[contains(@class, 'brand-trip-search-geopill-TripSearchGeoPill__icon--jEoJX')]")).click();

String keyword = request.getParameter("<parameter-inserted-by-user>");
//insert text inside search form
WebElement insert_element = driver.findElement(By.xpath("//input[@class='input-text-input-ManagedTextInput__managedInput--106PS']"));

insert_element.sendKeys(keyword+Keys.ENTER);

出现的问题是,当我运行测试时,文本会插入到搜索表单中,但是当 Keys.ENTER 发生时,搜索不会提交,并且它会像我实际编写的那样注册:

insert_element.sendKeys(Keys.ENTER);

我一直在 stackoverflow 寻找解决方案,我尝试了以下替代方案:

insert_element.sendKeys(keyword + "\n");

无济于事。它只注册“Enter”命令,从而为我提供“附近”位置的搜索。

我还发现我可以使用 JavaScript,但对于提交搜索请求这样的简单任务来说,它看起来很麻烦。

目前我使用的是 Chromedriver v.2.44 和 Selenium v​​.3.141.59

有人可以帮助我吗?提前感谢您抽出时间。

最佳答案

您遇到了时间问题。 Selenium 打字速度非常快,然后按回车键。手动执行这些操作,您会发现在键入内容和根据您键入的内容获取结果之间存在轻微的延迟。

我有示例代码可以证明上述内容,但我将其留给您来解决。上面的评论和您的代码应该足够了。

---编辑---现在OP已经弄清楚了,添加示例代码

driver.findElement(By.xpath("//span[contains(@class, 'brand-trip-search-geopill-TripSearchGeoPill__icon--jEoJX')]")).click();

String keyword = request.getParameter("<parameter-inserted-by-user>");
//insert text inside search form
WebElement insert_element = driver.findElement(By.xpath("//input[@class='input-text-input-ManagedTextInput__managedInput--106PS']"));

insert_element.sendKeys(keyword);
Thread.sleep(1000); // <-- Not ideal but for a permanent solution, but illustrates this is timing related.
insert_element.sendKeys(Keys.ENTER);

关于java - 当没有可用的提交按钮时,将 key 发送到表单字段时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53713754/

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