2016-06-01 13 views
0

Ich versuche, ein Kontrollkästchen zu aktivieren, das Teil des Jstree ist und alles, was ich bisher versucht habe, war nicht erfolgreich. Bitte helfen. Das Ziel ist, das Kontrollkästchen zu überprüfen, wo die ID 733 istSuchen und klicken Sie auf ein Kontrollkästchen, das Teil des Jstree mit Xpath ist?

Hier wird der HTML-Code ist:

<div id="jstree-1" class="jstree jstree-2 jstree-default jstree-default-responsive jstree-checkbox-no-clicked" role="tree" aria-activedescendant="8528"> 
<ul class="jstree-container-ul jstree-no-dots jstree-no-icons"> 
    <li id="733" class="jstree-node jstree-open jstree-last" role="treeitem" aria-selected="false" aria-expanded="true"> 
     <i class="jstree-icon jstree-ocl"/> 
     <a class="jstree-anchor" href="#"> 
      <i class="jstree-icon jstree-checkbox"/> 
      <i class="jstree-icon jstree-themeicon false jstree-themeicon-custom"/> 
      Accepts Cash 
     </a> 
     <ul class="jstree-children" role="group" style=""> 
    </li> 
</ul> 

Ich versuche, auf das Kontrollkästchen klicken, in jstree Selen WebDriver mit mit JAVA.

Hier sind Dinge, die ich bisher ohne Erfolg versucht habe.

Lösung 1:

driver.findElement(By.xpath(".//li[@id = '733']/a/i[@class = 'jstree-icon jstree-checkbox']")).click(); 

Lösung 2:

driver.findElement(By.id("733")).sendKeys(Keys.SPACE); 

Lösung 3:

WebElement element = driver.findElement(By.xpath(".//*[@id='733']/a/i[1]")); 
Actions actions = new Actions(driver); 
actions.moveToElement(element).click().perform(); 

Lösung 4:

driver.findElement(By.xpath(".//*[@id='733']/a/i[1]")).click(); 
Alle

die Befehle werden durch die folgende Zeile gefolgt

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

Und ich halte auf den folgenden Fehlercode bekommen:

unknown error: Element is not clickable at point (695, 507). Other element would receive the click: <a class="jstree-anchor" href="#">...</a> 

Dies ist, was passiert, nachdem die Ausführung aller gegebenen Lösungen:

Dropdown box opens up but is not getting clicked

After checkbox is clicked in frontend

Die folgende Codezeile wird den HTML hinzugefügt:

<span class="selectedCount" data-count="4"> (4)</span> 

Antwort

0

ich glaube, das Problem ist, dass Sie auf <i>, während wirklich die <a> anklickbar zu klicken versuchen. Versuchen Sie folgendes:

driver.findElement(By.xpath(".//li[@id='733']/a")).click(); 
+0

Hallo vielen Dank für Ihre Antwort, ich habe ein Bild angebracht, um das Endergebnis zu zeigen, die Drop-Down-Box geöffnet wird, aber das Kontrollkästchen ist nie ausgewählt. –

+0

Wie ändert sich der HTML-Code, wenn das Element überprüft wird? –

+0

@maxshaw Ich sah ähnliches Problem, wo ich auf einen Tab klicken muss, um mehr Optionen zu erhalten und wählen Sie eine Option und klicken Sie darauf. Ich musste driver.find_element_by_xpath() verwenden, klicken Sie zweimal auf() mit der ID von zwei Schaltflächen nacheinander. – Vivek

Verwandte Themen