gpt4 book ai didi

java - 即使使用完整的 xpath 也无法识别该元素

转载 作者:行者123 更新时间:2023-12-02 05:48:22 35 4
gpt4 key购买 nike

我无法在以下所有情况下识别该元素。请帮助我找出代码中的问题。

HTML 代码:

<div id="DetailedNavigationTree" class="SItree">
<div style="margin-left: 0px; margin-right: 10px; white-space: nowrap;">
<img src="/irj/portalapps/com.sap.portal.design.portaldesigndatathemes /portal/Test_theme/nav/treeview/ico12_treeleaf.gif?7.0.24.1.6"/>
<img id="DetailedNavigationTree/navurl://cd82866421cb92cf96c103eb19061574" src="/irj/portalapps/com.sap.portal.design.portaldesigndata/themes/portal/ford_theme/common/1x1.gif?7.0.24.1.6"/>
<a class="SItreeText" href="#" style="word-wrap: normal; white-space: nowrap;">Test CRM Centre</a>
</div>

我想点击标签<a - 测试CRM中心中的元素

我尝试过的代码:

driver.findElement(By.cssSelector(".SItreeText")).click();
driver.findElement(By.linkText("Test CRM Centre")).click();
driver.findElement(By.xpath("//html/body/table/tbody/tr[1]/td/div[1]/table/tbody/tr/td[1]/div/div/table/tbody/tr/td/span/table/tbody[2]/tr[2]/td[3]/div/div/div[2]/div/a")).click();
driver.findElement(By.cssSelector("#DetailedNavigationTree")).click();
driver.findElement(By.xpath("//a[contains(@href, '#')]")).click();
driver.findElement(By.xpath("//a[@id = 'navNodeAnchor_2_0']")).click();
driver.findElement(By.xpath("//a[contains(@href, '#')]")).click();
driver.switchTo().frame(driver.findElement(By.xpath("//html/body/table/tbody/tr[1]/td/div[1]/table/tbody/tr/td[1]/div/div/table/tbody/tr/td/span/table/tbody[2]/tr[2]/td[3]/div/div/div[2]/div/a")));

最佳答案

导致您无法识别元素的原因可能有多种。在我看来,你的一些选择器总体上看起来是正确的。也许回答以下问题可能会有所帮助,

页面上是否有多个可用链接?如果是这样,您可能需要进一步过滤要单击的元素,并避免使用通用选择器

 List<WebElement> links = driver.findElements(By.linkText("Test CRM Centre"));
System.out.println(links.size());

您有任何同步问题吗?就像您是否尝试在渲染之前单击 linkText ?在这种情况下,您可以使用显式等待

 WebDriverWait wait = new WebDriverWait(driver,30);
WebElement link = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Test CRM Centre")));
link.click();

您的元素是否位于任何框架内?如果是这样,您需要先切换到框架,然后才能找到该元素

 WebElement frame = driver.findElement(By.id("myframeid"));
driver.switchTo().frame(frame);

编辑#1也许您应该尝试单击图像,

WebElement element = driver.findElement(By.cssSelector("div#DetailedNavigationTree>div>img[id^='DetailedNavigationTree']"));
element.click();

关于java - 即使使用完整的 xpath 也无法识别该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828761/

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