如何使用selenium在画布对象上选择随机位置

时间:2018-02-18 13:09:37

标签: java selenium canvas xpath

我正在使用Java Selenium在影院网站上进行自动化测试 当我选择电影时,我想选择电影的位置 然后我有一个画布对象,我不知道为电影选择一个随机的地方 以下是表格中的代码:

   <div class="seatplanControl">
   <div class="screen">
   <div id="SeatPlanContainer" style="direction:ltr;">
      <div id="panzoom-parent" style="padding: 0px; height: 464.25px; width: 
                       761.508px; overflow: hidden; position: relative;">
         <canvas id="myCanvas" class="panzoom" style="background-color: 
               rgb(212, 212, 212); touch-action: pan-y; -moz-user-select: 
               none; transform: matrix(1, 0, 0, 1, 0, 2.325); transform-
               origin: 50% 50% 0px; cursor: pointer; transition: none 0s ease 
               0s ;" height="475" width="787"/>
      </div>
   </div>

你能帮我解决一下这种情况的代码吗? 在这一刻,我使用这个解决方案:

     WebElement element = driver.findElement(By.xpath("//div/div/div/canvas[@id='myCanvas']")); 
     Actions builder = new Actions(driver);   
     builder.moveToElement(element, 10, 25).click().build().perform();`

但它每次都不起作用,因为当选择一个随机电影时,我收到了画布对象的不同警戒线

`

1 个答案:

答案 0 :(得分:1)

你已经确定了基于webelement的坐标。

WebElement element = driver.findElement(By.xpath("//div/div/div/canvas[@id='myCanvas']")); 
 Point point = element.getLocation();
 int xcord = point.getX();
 int ycord = point.getY();
 Actions builder = new Actions(driver);   
 builder.moveToElement(element, xcord, ycord).click().build().perform();