Как получить согласованное поведение при перемещении курсора в Selenium: переместить курсор в начало или конец элемента вместо середины - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь выделить какой-то текст в своем приложении, предоставляя начальный и конечный текст.

Метод, описанный ниже, начинается в верхнем левом углу начального текста (со смещением 1,1, чтобы убедиться, что это в текстовом фрейме). Затем он перетаскивает курсор на другой элемент. Но функция MoveToElement () просто находит «центр» элемента или чего-то еще, и это не согласуется между запусками моего теста автоматизации.

Есть ли способ перейти к началу или концу элемента? Я не хочу использовать смещения, потому что когда я запускаю его локально, разрешение отличается от того, когда оно запускается на виртуальной машине.

private string selectTextOnPage = "//article[@id='oit.overlay.1']/div[{0}]//*[contains(text(),'{1}')]";                

By startWordXPath = By.XPath(String.Format(selectTextOnPage, startPage, startText));
var startWordWebElement = ElementFactory.CreateElement(startWordXPath).GetWebElement();

By endWordXPath = By.XPath(String.Format(selectTextOnPage, endPage, endText));
var endWordWebElement = ElementFactory.CreateElement(endWordXPath).GetWebElement();

Actions selectArea = new Actions(Driver);
selectArea.MoveToElement(startWordWebElement, 1, 1)
      .ClickAndHold()
      .MoveToElement(endWordWebElement)  //I want this to move to beginning or end of element to be more consistent.
      .Release()
      .Perform();
...