Selenium WebDriver第二次单击无法正常工作

时间:2015-11-02 10:27:53

标签: c# .net selenium

我正在按位置进行点击,当我移动到位置并进行点击时。 第一次点击工作正常,但另一次没有反应。

我的主要目标:我有(x,y)列表,我需要点击

代码

 Actions action = new Actions(driver);
 action.MoveByOffset(BlocX + 12, BlocY + 12);
 action.Click();//only this is working
 action.Perform();
 action.Release();

 action.MoveByOffset(BlocX + 36, BlocY + 12);
 action.Click();
 action.Perform();
 action.Release();

 action.MoveByOffset(BlocX + 60, BlocY + 12);
 action.Click();
 action.Perform();
 action.Release();

我在此代码中缺少什么,如何预先形成所有点击?

我最终尝试进行表演,这也不起作用

这是代码

  Actions action = new Actions(driver); 
  action.MoveByOffset(BlocX + 12, BlocY + 12);
  action.Click();
  action.Release();
  action.MoveByOffset(BlocX + 36, BlocY + 12);
  action.Click();
  action.Release();
  action.MoveByOffset(BlocX + 60, BlocY + 12);
  action.Click();

  action.Perform();

只有在我不再移动鼠标位置的情况下才能进行多次点击

  Actions builder = new Actions(driver);
  builder.MoveByOffset(BlocX + 12, BlocY + 12).Click();
  builder.Click();
  builder.Click();
  builder.Click();
  builder.Perform();

任何人都知道如何对所有职位进行所有点击?

1 个答案:

答案 0 :(得分:1)

尝试构建所有顺序操作,然后执行它。每次必须单击时,在new类上调用Actions,因为在执行第二次单击时根据您的代码,鼠标指针将位于BlocX + 12位置。因此,您的第二次点击发生在BlockX + 12 + BlockX + 36

// click 1
Actions actions = new Actions(driver);
actions.moveByOffset(BlocX + 12, BlocY + 12).click().build().perform();

// click 2
actions = new Actions(driver);
actions.moveByOffset(BlocX + 36, BlocY + 12).click().build().perform();

// click 3
actions = new Actions(driver);
actions.moveByOffset(BlocX + 60, BlocY + 12).click().build().perform();