gpt4 book ai didi

java - 使用 Java 的 Selenium Webdriver - 单击超链接的下拉容器

转载 作者:行者123 更新时间:2023-11-30 06:05:20 25 4
gpt4 key购买 nike

我需要单击下拉容器内的一个元素。我尝试了多次搜索,但未能找到正确的解决方案。 select 方法不起作用,并且当没有与之相关的 ID、名称或类时,我仍然不知道如何使用选择器。 HTML 代码如下:

<a href="/account/settings/info"class="account-link">Account<span class="caret"></span></a>

<div class="account-dropdown__container">
<ul>
<li><a href="/account/settings/info" target="_self">Account</a></li>
<li><a href="/wedding-registry/invite" target="_self">Invite Friends</a></li>
<li><a href="/account/settings/credits" target="_self">Zola Store Credit</a></li>
<li><a href="/registry/settings/info" target="_self">Registry Settings</a></li>
<li><a href="/account/settings/orders" target="_self">Orders You've Placed</a></li>
<li><a>Log out</a></li>
</ul>
</div>

第一段代码是一个按钮,但是如果我将鼠标放在它上面,它将显示我正在谈论的下拉容器。如果我将鼠标放在它上面而不单击,它将显示下拉容器的列表。 (我还想知道如何悬停一个元素以显示列表而不单击它,因为它是隐藏的)。

那么我的问题是:如何单击“注册表设置”?

它没有 ID,也没有类(尽管它位于 class account-dropdown__container 内)。我想我可以使用 By.name("Registry Settings") ,但由于除非打开下拉列表,否则它不可见,因此不会单击并且会显示 Css Selector not found错误。愿意帮忙吗?谢谢!

另外,我在 IntelliJ IDEA 中使用 Cucumber + Selenium + Java,合成轴略有变化,但它仍然与我在这个论坛中找到的代码不同。因此,为什么我要求针对我的问题提供具体的解决方案。

最佳答案

您必须首先使下拉列表可见。

就像在 Selenium 中一样,你不能只悬停一个元素,你必须一次性完成所有操作。

检查这个:How to perform mouseover function in Selenium WebDriver using Java?

Actions action = new Actions(webdriver);
WebElement button = webdriver.findElement(By.class("account-link"));
action.moveToElement(button).moveToElement(webdriver.findElement(By.linkText("Registry Settings")).click().build().perform();

您可能需要等待下拉菜单才会出现。我尚未测试该代码,您可能必须先修复它才能工作。

关于java - 使用 Java 的 Selenium Webdriver - 单击超链接的下拉容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459920/

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