【问题标题】:How to locate the element as per the given HTML如何根据给定的 HTML 定位元素
【发布时间】:2019-11-08 15:45:13
【问题描述】:
<input value="Order (ESHOP)" class="btn" name="order_eshop" title="Order (ESHOP)" type="button" onclick="Sfdc.logServer('CUSTOM_URL_BUTTON', {id: '00b41000002iuj6', name: 'Order_ESHOP'}, Sfdc.Logging.LogLevel.INFO);
openIntegration('/servlet/servlet.Integration?scontrolCaching=1&amp;lid=00b41000002iuj6&amp;eid=a0863000007SV1q&amp;ic=1&amp;isdtp=vw&amp;linkToken=VmpFPSxNakF4T1MweE1TMHhNRlF5TVRvd09EbzBNaTQyT1RWYSx0eno3X1lSS1lOY1hORmtKb2ZvM3BxLFlXWmtNR0po', 'height=600,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1)">

我无法为此找到 xpath。我在单个路径 Order (ESHOP) 上有相同的元素。当我尝试使用索引时,找不到正确的 xpath。

【问题讨论】:

  • 我是来学习的。没有帮助^^
  • 请阅读How to Ask,尤其是关于minimal reproducible example(MCVE)和How much research effort is expected?的部分,这将帮助您调试自己的程序并自己解决问题。如果您这样做并且仍然卡住,您可以返回并发布您的 MCVE、您尝试过的内容以及执行结果(包括任何错误消息),以便我们更好地帮助您。还提供指向页面和/或相关 HTML 的链接。
  • 您需要花一些时间来整理您的问题。现在你错过了很多信息。所有相关信息都需要进入问题本身。评论应该是回答问题等,但不应包含回答问题所必需的信息。将您发布到 cmets 中的 HTML 添加到您的问题中。您还需要添加当前代码和结果...错误消息等,并将它们正确格式化为问题。

标签: selenium selenium-webdriver xpath css-selectors webdriverwait


【解决方案1】:

所需的元素是启用了JavaScript 的元素,以便定位/交互您必须为elementToBeClickable() 诱导WebDriverWait 的元素,您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.btn[name='order_eshop'][value='Order (ESHOP)'][title='Order (ESHOP)']")));
    
  • 使用XPATH

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='btn' and @name='order_eshop'][@value='Order (ESHOP)' and @title='Order (ESHOP)']")));
    

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签