java
  • selenium
  • selenium-webdriver
  • 2016-12-24 4 views 1 likes 
    1

    Ich versuche, eine von dem Element aus dropdown.I auszuwählen abgerufen haben 12 Elemente, wenn ich die Methode getAttribute():Element nicht sichtbar: Element ist nicht sichtbar und können nicht manipuliert

    Select select = new Select(driver.findElement(By.xpath("//select[@id='dataset_downloadDataset_select']"))); 
        List<WebElement> options = select.getOptions(); 
        System.out.println(options.size()); 
        for (int i=1; i<=11; i++){ 
        System.out.println(options.get(i).getAttribute("value")); 
    

    Nach 12 Elemente von dropdowm Abrufen, ich will eine von them.For auszuwählen, die ich versucht habe Actions/Javascriptexecutor aber ich bin immer Element nicht sichtbar exception.The Code für Action Methode ist:

    WebElement mnuElement; 
        WebElement submnuElement; 
    
        mnuElement = driver.findElement(By.xpath("//input[starts-with(@data-activates,'sele')][@value='XXXXXXXXXXX']")); 
        submnuElement = driver.findElement(By.xpath("//*[@id='dataset_downloadDataset_select']/option[4]")); 
        Actions builder = new Actions(driver); 
        builder.moveToElement(mnuElement).perform(); 
        Thread.sleep(5000); 
        driver.findElement(By.xpath("//*[@id='dataset_downloadDataset_select']/option[4]")).click(); 
    

    Könnte Anyo hilf mir, das zu lösen.

    +0

    Es ist möglich, dass es einige Zeit dauert, Das Dropdown-Feld muss ausgefüllt werden. Hast du versucht, Seleniums Zeit zu verlängern, um ein Element zu finden? – derloopkat

    +0

    Ja, ich habe versucht, die –

    +0

    @ vijay_m zu erhöhen, 'builder.moveToElement (mnuElement) .perform();' bedeutet nicht, das Dropdown-Menü zu öffnen, so dass Sie nicht mit den Optionen umgehen können. Versuchen Sie, auf 'mnuElement' zu klicken, bevor Sie auf' submnuElement' klicken. – Andersson

    Antwort

    0

    Es hängt von Ihrem Browser ab. Chrome kann auf die Option klicken, ohne zu erweitern, während Firefox damit nicht umgehen kann. Wählen Sie mit aus. Option, die Sie verwenden, erfordert auf der Liste zu klicken, und dann wählen, aber es ist simplier wie der für firefox

    -Code zu tun (und wahrscheinlich auch jeden Browser)

    WebDriver driver;//then choosing browser 
    element=driver.findElement(By.xpath("//select[@id='dataset_downloadDataset_select']"));//or whatever 
    Select select=new Select(element); 
    
    //To select what you want, this is selecting, nothing more 
    
    select.selectByValue("Mainframe File 1");//or other 
    
    +0

    Ich benutze Chrome browser.Ich habe versucht mit select.selectByValue ("Wert von getattribute abgerufen"), bekomme ich die Ausnahmebedingung 'Element nicht gefunden'. –

    +0

    können Sie HTML dieses Elements senden? (Inspizieren Sie es und erweitern Sie das, was dort ist) – Myszsoda

    +0