【发布时间】:2019-09-19 22:38:37
【问题描述】:
无法使用 Selenium webdriver 定位 li 元素中存在的锚元素。
对于下面的 HTML DOM 结构,我无法找到第二个 li 元素。我基本上想通过使用 Selenium Webdriver 加载新页面来找到它并在那里对其执行单击操作。
尝试使用以下方法访问它:
id - docTab
xpath -.//div[@class='secondary-tabs']/ul/li[1]/a
xpath - //*[@id="docTab"]
xpath - /html/body/div[1]/main/div[2]/div/div/div[2]/div[1]/ul/li[2]/a
css - #docTab. tab__heading
css - li[id="docTab"]
但所有这些都导致“无法定位元素”错误。即使在包含 driver.wait 方法之后也会发生这种情况。
DOM 结构:
<div class="secondary-tabs">
<ul class="tabs tabs--bordered">
<li class="tab active second_tabs" id="textTab" tabdivid="textSecond"><a><div class="tab__heading" title="Text">Text</div></a></li>
<li class="tab second_tabs" id="docTab" tabdivid="docSecond"><a><div class="tab__heading" title="File">Document</div></a></li>
<li class="tab second_tabs" id="faqTab" tabdivid="faqSecond"><a><div class="tab__heading" title="FAQ" onclick="FAQ">FAQ</div></a></li>
</ul>
</div>
我希望找到第二个 li 元素并使用 selenium web 驱动程序对其执行点击事件。
【问题讨论】:
-
您的代码执行时页面是否已完全加载?
-
您使用的是哪个客户端? Java、Python、C#?
-
页面已完全加载。我正在使用 Java。
-
导航到 Chrome 中的页面并打开开发工具。运行
$$("#docTab")...返回多少元素?我的猜测是您需要等待,或者您的元素在 IFRAME 中。 -
嗨,JeffC,我运行了命令,它返回 [li#docTab.tab.second_tabs]。这是要使用的 CSS 选择器吗?
标签: selenium-webdriver xpath css-selectors webdriverwait