2017-07-13 3 views
2

Dies ist der X-Pfad für den Zugriff auf die Elemente einer Bildlaufleiste.Selen: Zugriff auf Teile der Bildlaufleiste mit CSS-Selektor

/html/body/div/div[3]/div/div[2]/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[5]/td/div/table[4]/tbody/tr/td/table/tbody/tr/td[3]/div/div/div/div[4]/div[1]/div[3] 

Ich kopierte diese XPATH Firepath verwenden, aber es ist sehr lang und anfällig für change.I die Elemente mit CSS-Selektor zugreifen wollte, aber ich bin mir nicht ganz sicher, wie es zu tun. Unten ist die HTML-Datei der Bildlaufleiste.

Frage: Wie kann ich auf das Home, Previous, Next, End von der 'class = "z-biglistbox-one z-biglistbox"' zugreifen? Der Xpath früher Zugriff auf die Schaltfläche Weiter. Wenn Sie Ideen haben, wie es geht, können Sie es bitte teilen. Vielen Dank.

<div id="pRCQhu3" class="z-biglistbox-one z-biglistbox" style="width:1100px;height:800px;"> 
    <div class="z-biglistbox-outer"> 
     <div id="pRCQhu3-head" class="z-biglistbox-head-outer"> 
     <div id="pRCQhu3-body" class="z-biglistbox-body-outer" style="height: 653px;"> 
     <a id="pRCQhu3-a" class="z-focus-a" style="top:0px;left:0px" onclick="return false;" href="javascript:;"></a> 
     <div id="pRCQhu3-vbar" class="z-biglistbox-wscroll-vertical"> 
     <div id="pRCQhu3-hbar" class="z-biglistbox-wscroll-horizontal"> 
      <div class="z-biglistbox-wscroll-drag" style="left: 0px;"> 
       <div class="z-biglistbox-wscroll-home" title="Home"></div> 
       <div class="z-biglistbox-wscroll-up" title="Previous"></div> 
       <div class="z-biglistbox-wscroll-down" title="Next"></div> 
       <div class="z-biglistbox-wscroll-end" title="End"></div> 
     </div> 
    </div> 
</div> 

Hinweis: Es gibt andere Elemente, die denselben Klassennamen haben. Wenn ich versuchte, den Klassennamen zu verwenden, wurde auf diese Elemente anstatt auf diese zugegriffen. Ich habe mich gefragt, ob ich so etwas wie dieses verwenden, da diese die 2. Verwendung dieser Klasse sind:

WebElement down = driver.findElement(By.className("z-biglistbox-wscroll-down[2]")); 
+0

Bitte senden Lösungen Antworten nicht als Updates auf die Frage. Dies soll Verwirrung vermeiden. Vielen Dank. – Bugs

Antwort

0

Warum nicht diese Elemente zuzugreifen unter Verwendung von ‚By.className‘?

WebElement homeButton = driverGC.FindElement(
     By.ClassName("z-biglistbox-wscroll-home")); 
+0

Ich kann den Klassennamen nicht verwenden, da andere Elemente denselben Klassennamen haben. Diese Elemente erscheinen vor diesen. Wenn ich also den Klassennamen verwende, sind diese Elemente diejenigen, auf die zugegriffen wird. – Andrea

0

Sie können sie suchen Sie den Klassennamen

WebElement homeButton = driver.findElement(By.className("z-biglistbox-wscroll-home")); 
WebElement homeButton = driver.findElement(By.className("z-biglistbox-wscroll-up")); 
//... 

oder mit Teilklassennamen

für diese Klassennamen verwenden

für Home-Button mit cssSelector

WebElement homeButton = driver.findElement(By.cssSelector("[class*='home']")); 
WebElement homeButton = driver.findElement(By.cssSelector("[class*='up']")); 
//... 
+0

Leider kann der Klassenname nicht verwendet werden, da andere Elemente denselben Klassennamen haben. Diese Elemente erscheinen vor diesen. Wenn ich also den Klassennamen verwende, sind diese Elemente diejenigen, auf die zugegriffen wird. – Andrea

+0

@Andrea Ist die ID '" pRCQhu3-hbar "' im Vorfahrelement eindeutig? – Guy

0

Sie können

WebElement homeButton = driver.findElement(By.className("z-biglistbox-wscroll-home")); 
homeButton.click(); 

Für Up-Taste

WebElement upButton = driver.findElement(By.className("z-biglistbox-wscroll-up")); 
upButton.click(); 

Für Down-Taste

WebElement downButton = driver.findElement(By.className("z-biglistbox-wscroll-down")); 
downButton.click(); 

für Ende-Taste

WebElement endButton = driver.findElement(By.className("z-biglistbox-wscroll-end")); 
endButton.click(); 
+0

Ich kann den Klassennamen nicht verwenden, da andere Elemente denselben Klassennamen haben. Diese Elemente erscheinen vor diesen. Wenn ich also den Klassennamen verwende, sind diese Elemente diejenigen, auf die zugegriffen wird. – Andrea

Verwandte Themen