Selenium:使用CSS选择器访问滚动条的各个部分

时间:2017-07-13 08:28:21

标签: java html css selenium xpath

这是访问滚动条元素的xpath。

/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]

我使用Firepath复制了这个XPATH,但它很长并且容易改变。我想使用css选择器访问元素,但我不太清楚如何做到这一点。下面是滚动条的HTML文件。

问题:如何从'class =“z-biglistbox-one z-biglistbox”'开始访问Home,Previous,Next,End? xpath之前访问Next按钮。如果您有任何想法,请分享一下。谢谢。

<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>

注意:还有其他元素具有相同的类名。当我尝试使用类名时,访问这些元素而不是这些元素。我想知道我是否可以使用这样的东西,因为这是第二次使用该类:

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

3 个答案:

答案 0 :(得分:0)

为什么不使用'By.className'访问这些元素?

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

答案 1 :(得分:0)

您可以使用班级名称

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

或使用cssSelector

的部分班级名称
WebElement homeButton = driver.findElement(By.cssSelector("[class*='home']"));
WebElement homeButton = driver.findElement(By.cssSelector("[class*='up']"));
//...

答案 2 :(得分:0)

您可以使用此名称

对于主页按钮

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

For Up按钮

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

对于向下按钮

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

结束按钮

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