selenium
  • xpath
  • selenium-webdriver
  • 2016-09-14 2 views 0 likes 
    0

    Это HTML код страницы:Как выполнить щелчок() на этой гиперссылке с использованием Селен 3

    <a href="default_Usuario.asp?i=1"><img src="resources/v3_presioneaqui.gif" border="0"></a> 
    

    Я пытался с этим кодом:

    driver.findElement(By.xpath("//a[@href ='default_Usuario.asp?i=1']")).click(); 
    

    , но он не работает для меня дает ошибку NoSuchElementException

    +0

    Попробуйте Xpath './/a[@href='default_Usuario.asp?i=1' ]/img' – Sudeepthi

    ответ

    0

    , но он не работает для меня дает ошибку NoSuchElementException

    Там могут быть следующие причины этого exception, как показано ниже: -

    • Может быть ваш локатор пытается найти элемент неверно, вы используете для определения точного значения атрибута href, который может быть изменен динамически. Вы должны попробовать с частичным совпадением с использованием cssSelector как: -

      driver.findElement(By.cssSelector("a[href*='default_Usuario']")).click(); 
      
    • Может быть, когда вы собираетесь найти элемент, он не будет присутствовать на DOM, поэтому вы должны реализовать WebDriverWait подождать, пока элемент видимого на DOM и кликабельны, как показано ниже: -

      WebDriverWait wait = new WebDriverWait(driver, 10); 
      WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[href*='default_Usuario']"))); 
      el.click(); 
      
    • Может быть этот элемент находится внутри любого frame/iframe. Если да, то вам нужно переключить, что frame/iframe прежде чем найти нужный элемент, как показано ниже: -

      WebDriverWait wait = new WebDriverWait(driver, 10); 
      
      //Wait until frame/iframe to available and then switch to it 
      wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("your frame id or name")); 
      
      //Now find the desired element 
      WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[href*='default_Usuario']"))); 
      el.click(); 
      
      //Once all your stuff done with this frame/iframe need to switch back to default for further stuff 
      driver.switchTo().defaultContent(); 
      
    +1

    Спасибо большое, Это разрешает мою проблему. – Parth

    +0

    Если этот ответ помог [принять этот ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), а также .. –

    0

    Вы должны попробовать более общий селектор, как этот:

    //a[contains(@href, 'default_Usuario')] 
    
    Смежные вопросы