Javascript 从下拉列表中选择一个选项,该选项未使用Select using Puppeter实现

Javascript 从下拉列表中选择一个选项,该选项未使用Select using Puppeter实现,javascript,drop-down-menu,puppeteer,Javascript,Drop Down Menu,Puppeteer,React AntD设计有一个下拉实现,它不使用Select标记来实现下拉。一个例子是。我在我们的一个项目中也有类似的实施 下拉列表中的选项使用ul和li标签填充,如图所示- 如何通过此下拉列表上的索引处理或选择任何选项 对于Select,我们可以使用SO讨论中提到的page.Select方法。我尝试了这个,但是这个下拉选择不起作用 我尝试了另一种方法,使用page.keyboard。键入'ArrowDown'和page.keyboard。键入'Enter'单击并使用键转到选项,但这样做会返回T

React AntD设计有一个下拉实现,它不使用Select标记来实现下拉。一个例子是。我在我们的一个项目中也有类似的实施

下拉列表中的选项使用ul和li标签填充,如图所示-

如何通过此下拉列表上的索引处理或选择任何选项

对于Select,我们可以使用SO讨论中提到的page.Select方法。我尝试了这个,但是这个下拉选择不起作用


我尝试了另一种方法,使用page.keyboard。键入'ArrowDown'和page.keyboard。键入'Enter'单击并使用键转到选项,但这样做会返回TypeError:中间值不是函数错误。

最好的方法是单击,在您的情况下,我将编写页面。单击'div.ant-dropdown.ant-dropdown placement bottomleft'(左下角)对不起,选择器太大了;ID可能会有所帮助。

使用您提供的,首先,您必须单击下拉链接以生成下拉列表

之后,您可以单击下拉菜单项“按索引链接”:

await page.evaluate(() => {
  const dropdown_link = document.querySelector('#components-dropdown-demo-trigger .ant-dropdown-link');

  dropdown_link.click();

  const dropdown_menu_item_links = document.querySelectorAll('.ant-dropdown > .ant-dropdown-menu > .ant-dropdown-menu-item > a');

  dropdown_menu_item_links[0].click(); // Select Menu Item Link by Index
});

我使用click-in测试了一个示例,如果您需要代码,请告诉我。这将单击元素,对吗?如何进行选择?是的,现在您实现了对元素的新单击,类似于此页面。单击'div.ant-dropdown.ant-dropdown-placement-bottomleft>ul>li:nth-child3';我不知道是否接受这个解决方案。我用我拥有的平台尝试了同样的方法,它从下拉列表中选择了选项。但是,在此之后不会执行其他步骤,如page.type。为什么会出现这种情况?@demouser123由于木偶演员正在通过单击下拉菜单中的链接导航到另一个页面,您应该能够放置wait page.waitForNavigation;之后,您应该可以在新页面上使用page.type。抱歉。我应该说得更清楚些。我实现的解决方案是针对内部web平台的,它具有相同的下拉列表。在我的情况下,没有到其他网站的导航。@demouser123在这种情况下,您应该能够使用document.querySelectorAll.ant下拉列表>.ant下拉菜单>.ant下拉菜单项“[0]。单击可按索引从下拉菜单中单击项目,而无需重定向到任何关联的链接。然后,您可以继续在同一页上使用page.type。如果这不起作用,则可能会在您引用的页面上的mousedown或mouseup上触发一些事件,从而导致意外结果。