首页 > 解决方案 > 无法在 IE 中使用 Xpath Selenium 找到元素

问题描述

对象的 DOM Explorer:

<INPUT tabIndex=0 onkeyup=DisableEnableFields(); onblur=autoValidate(this) id=prvd_org_name onkeydown="return HandleMaxLengths(this, 70,event,'','');" maxLength=70 size=120 name=prvd_org_name isRequired="false" ValidationType="ALPHANUMERICSPACEPUNCTUATION">

请帮我解决xpath

在 xpaths 下试过:

driver.findElement(By.xpath("//input[@name ='prvd_org_name']"))
driver.findElement(By.xpath("//input[@type= text and @name ='prvd_org_name']"))

请给我不同的选择,因为以上两个它让我无法找到元素

标签: javaseleniumxpathcss-selectorswebdriverwait

解决方案


要识别元素,您可以使用以下任一Locator Strategies

  • cssSelector

    WebElement element = driver.findElement(By.cssSelector("input#prvd_org_name[name='prvd_org_name']"));
    
  • xpath

    WebElement element = driver.findElement(By.xpath("//input[@id='prvd_org_name' and @name='prvd_org_name']"));
    

但是,由于元素是动态元素,因此要识别您需要诱导WebDriverWait的元素elementToBeClickable(),您可以使用以下任一Locator Strategies

  • cssSelector

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#prvd_org_name[name='prvd_org_name']")));
    
  • xpath

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='prvd_org_name' and @name='prvd_org_name']")));
    

推荐阅读