как я могу переместить эти числа с помощью селена - PullRequest
0 голосов
/ 25 мая 2020

Здравствуйте, я понятия не имею, с чего начать, у меня есть только пример (http://demoqa.com/sortable), как я могу изменить положение чисел 1-2-3-4; 2-1-3 -4; Я должен сделать это как тест в selenium webdriver

1 Ответ

0 голосов
/ 25 мая 2020

C#

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using System.Diagnostics;
using (IWebDriver driver = new ChromeDriver())
{
    driver.Navigate().GoToUrl("http://demoqa.com/sortable");
    var elementOne = driver.FindElement(By.CssSelector("#demo-tabpane-list > div > div:nth-child(1)"));
    var elementTwo = driver.FindElement(By.CssSelector("#demo-tabpane-list > div > div:nth-child(2)"));

    var actionChain = new Actions(driver);
    actionChain
         .ClickAndHold(elementTwo)
         .MoveToElement(elementOne)
         .MoveByOffset(0, 10)
         .Release()
         .Perform();

     elementOne = driver.FindElement(By.CssSelector("#demo-tabpane-list > div > div:nth-child(1)"));
     elementTwo = driver.FindElement(By.CssSelector("#demo-tabpane-list > div > div:nth-child(2)"));

    Debug.Assert(elementOne.Text.ToLower() == "two");
    Debug.Assert(elementTwo.Text.ToLower() == "one");
}

Python

from selenium import webdriver
from selenium.webdriver import ActionChains

driver = webdriver.Chrome('C:\Drivers\chromedriver.exe')
driver.get("http://demoqa.com/sortable")

first_element = driver.find_element_by_css_selector("#demo-tabpane-list > div > div:nth-child(1)")
second_element = driver.find_element_by_css_selector("#demo-tabpane-list > div > div:nth-child(2)")

action_chains = ActionChains(driver)
action_chains.drag_and_drop(second_element, first_element).perform()

first_element = driver.find_element_by_css_selector("#demo-tabpane-list > div > div:nth-child(1)")
second_element = driver.find_element_by_css_selector("#demo-tabpane-list > div > div:nth-child(2)")

assert first_element.text.casefold() == 'two'
assert second_element.text.casefold() == 'one'

driver.close()
driver.quit()

Я использовал документацию из https://selenium-python.readthedocs.io/ и https://www.selenium.dev/selenium/docs/api/dotnet/

Я заметил одну проблему, связанную с версией C#, из-за которой мне пришлось использовать серию действий и убедиться, что элемент находится в немного другом месте для правильной работы. Версия Python этого не требовала.

Я не знал, какую среду модульного тестирования использовать для C#, поэтому я использовал System.Diagnostics.

...