gpt4 book ai didi

java - 使用 li 标签的 GetText 在 selenium webdriver 中返回空白

转载 作者:行者123 更新时间:2023-11-30 06:26:14 35 4
gpt4 key购买 nike

HTML

<div class="WIS wd-popup wdappchrome-ad" data-popup-version="2" data-automation-id="searchInputAutocompletePopup" data-automation-activepopup="true" style="padding: 7px 0px; right: auto; bottom: auto; z-index: 50; top: 92px; left: 65px;">
<div class="WFS wd-popup-content wdappchrome-ae" style="max-height: 195px; max-width: 1282px;">
<ul class="wdappchrome-ah" aria-setsize="3">
<li class="wdappchrome-ai" data-automation-id="searchInputAutoCompleteResult" tabindex="0" aria-posinset="1"><span data-automation-id="searchInputAutoCompleteResultFullText"><span style="font-weight:500"><span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Build</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Your</span>-<span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Resume</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">first</span> Plan</span>
</span><span class="wdappchrome-aj" data-automation-id="searchInputAutoCompleteResultType"> - Feature</span></li>

<li class="wdappchrome-ai" data-automation-id="searchInputAutoCompleteResult" tabindex="0" aria-posinset="2"><span data-automation-id="searchInputAutoCompleteResultFullText"><span style="font-weight:500"><span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Build</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Your</span>-<span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Resume</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Second</span> Plan Configurable Category</span>
</span><span class="wdappchrome-aj" data-automation-id="searchInputAutoCompleteResultType"> - Feature</span></li>

<li class="wdappchrome-ai" data-automation-id="searchInputAutoCompleteResult" tabindex="0" aria-posinset="3"><span data-automation-id="searchInputAutoCompleteResultFullText"><span style="font-weight:500"><span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Build</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Your</span>-<span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Resume</span> <span style="font-weight:400" data-automation-id="searchInputAutoCompleteResultToken">Third</span> Plan Schedule</span>
</span><span class="wdappchrome-aj" data-automation-id="searchInputAutoCompleteResultType"> - Feature</span></li>
</ul>
</div>
<div role="presentation" class="WMS wd-popup-anchor WPS WPR"></div>
</div>

我尝试从自动填充结果中选择选项

 try {
WebElement autoOptions =driver.findElement(By.className("wdappchrome-ah"));


List<WebElement> optionsToSelect = autoOptions.findElements(By.tagName("li"));

System.out.println("TExt : " + optionsToSelect.get(0).getText());
System.out.println(optionsToSelect.get(1).getText());
System.out.println(optionsToSelect.get(2).getText());

for (WebElement option : optionsToSelect) {
if (option.getText().equals(textToSelect)) {
System.out.println("Trying to select: " + textToSelect);
option.click();
break;
}
}

} catch (NoSuchElementException e) {
System.out.println(e.getStackTrace());
} catch (Exception e) {
System.out.println(e.getStackTrace());
}}

自动化步骤

  1. 输入文本进行搜索。即建立自己的简历
  2. 网站根据搜索文本填充自动完成结果
  3. 我添加了搜索后如何显示结果的 html 代码
  4. 我想根据文本选择特定结果。

我面临的问题

我使用上面的代码获得了正确的li数量,但是当我执行GETTEXT时,它返回空白。这里的结果带有 li,然后使用 span 划分整个搜索词,这就是我无法管理和获取整个文本的原因。

最佳答案

我不熟悉 Java 中的 Selenium,但您得到的结果似乎合乎逻辑,因为您试图从父元素而不是元素本身提取文本。

更新:在 HTML 中,每个 Li 的跨度包含沿跨度分布的文本 3 次,您只需要从第一个跨度获取文本即可。

尝试如下:

            String textToSelect;
List<WebElement> optionsToSelect = autoOptions.findElements(By.tagName("li"));

for (WebElement option : optionsToSelect) {
textToSelect="";
List<WebElement> textPerLi= option .findElements(By.tagName("span"));

textToSelect=textToSelect+textPerLi.get(0).getText();

if ("Text you want to match with".equals(textToSelect)) {
System.out.println("Trying to select: " + textToSelect);
option.click();
break;
}
}

关于java - 使用 li 标签的 GetText 在 selenium webdriver 中返回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150632/

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