using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Support.UI;
using System.Xml.Linq;
using SeleniumExtras.WaitHelpers;
namespace SeleniumProject03;
public class DemoQASimpleLoginTest
{
private IWebDriver driver;
[SetUp]
public void Setup()
{
driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://demoqa.com/");
driver.Manage().Window.Maximize();
}
[Test]
public void Login ()
{
IWebElement bookCard = driver.FindElement(By.XPath("//h5[text()='Book Store Application']/ancestor::div[contains(@class, 'top-card')]"));
// Not working
try
{
Actions actions = new Actions(driver);
actions.MoveToElement(bookCard).Click().Perform();
}
catch (Exception ex)
{
Console.WriteLine("Error scrolling to the element: " + ex.Message);
}
try
{
bookCard.Click();
}
catch (Exception ex1)
{
Console.WriteLine("Error clicking the element: " + ex1.Message);
}
// Working
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", bookCard);
bookCard.Click();
}
[TearDown]
public void TearDown()
{
Thread.Sleep(5000);
// Close the browser
if (driver != null)
{
driver.Dispose();
}
}
}
Я обнаружил, что использование Simple Findelement [...]. Click () не работает. Также я попробовал selenium.interactions.actions.movetoelement (). Click () безуспешно (исключение завоевано ниже). Я обнаружил, что использование javascript scrollintoview действительно работает. И здесь есть вопрос. Class = "Card MT-4 Top-Card"> ... не кликабель в точке (190, 950). Другой элемент получит щелчок:
Новичок здесь, используя селена 4.34 на .net 8.0. Используется страница теста автоматизации: https://demoqa.com/образное время sudo:
[*] chrome ure url
< /ol> Целый скрипт: < /p> [code]using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Interactions; using OpenQA.Selenium.Support.UI; using System.Xml.Linq; using SeleniumExtras.WaitHelpers;
namespace SeleniumProject03;
public class DemoQASimpleLoginTest { private IWebDriver driver;
[SetUp] public void Setup() { driver = new ChromeDriver(); driver.Navigate().GoToUrl("https://demoqa.com/"); driver.Manage().Window.Maximize(); }
[Test] public void Login () { IWebElement bookCard = driver.FindElement(By.XPath("//h5[text()='Book Store Application']/ancestor::div[contains(@class, 'top-card')]"));
// Not working try { Actions actions = new Actions(driver); actions.MoveToElement(bookCard).Click().Perform(); } catch (Exception ex) { Console.WriteLine("Error scrolling to the element: " + ex.Message); }
// Working ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", bookCard); bookCard.Click(); }
[TearDown] public void TearDown() { Thread.Sleep(5000); // Close the browser if (driver != null) { driver.Dispose(); } } } [/code] Я обнаружил, что использование Simple Findelement [...]. Click () не работает. Также я попробовал selenium.interactions.actions.movetoelement (). Click () безуспешно (исключение завоевано ниже). Я обнаружил, что использование javascript scrollintoview действительно работает. И здесь есть вопрос. Class = "Card MT-4 Top-Card"> ... не кликабель в точке (190, 950). Другой элемент получит щелчок: