Я сталкиваюсь с проблемой открыть раскрывающийся список выберите вариант по нажатию в C # с помощью селена - PullRequest
2 голосов
/ 16 октября 2019

Я пытаюсь открыть страницу регистрации из своего аккаунта. Разработчик пользовательского интерфейса использовал код начальной загрузки. Разработчики Bootstrap добавили функцию JS по клику. и когда я запускаю этот код, появляется сообщение об ошибке "OpenQA.Selenium.ElementClickInterceptedException было брошено

элемент перехватил щелчок элемента: Элемент ... не активен в точке (984, 50). Другой элемент получит щелчок:... (информация о сеансе: chrome = 77.0.3865.120) "

Прикрепленная ссылка на снимок экрана: https://monosnap.com/file/1z5PYCFBHfcXtkWJWVMi4SeejUXXOf https://monosnap.com/file/hdq3194312RCnvc6GdQXLLVqtoezNJ

Это мой код

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

namespace XTSeleniumtest
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            IWebDriver driver = new ChromeDriver();

            driver.Navigate().GoToUrl("http://freshpicksdev.isrv.tech/");

            driver.FindElement(By.CssSelector("div.modal-header .close")).Click();
            driver.FindElement(By.XPath("//a[@id='navbarDropdown']/u")).Click();


        }
    }
}
**`

> strong text

`**

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Попробуйте приведенный ниже код. Вам нужно будет добавить ссылку на "SeleniumExtras.WaitHelpers" из nuget

 class MainClass
    {
        public static void Main(string[] args)
        {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("http://freshpicksdev.isrv.tech/");
            driver.FindElement(By.CssSelector("div.modal-header .close")).Click();

            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            wait.IgnoreExceptionTypes(typeof(NoSuchElementException));
            wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.XPath("//u[contains(text(),'My Account')]")));
            driver.FindElement(By.XPath("//u[contains(text(),'My Account')]")).Click();
            driver.FindElement(By.XPath("//a[text()='Register']")).Click();
        }
    }
0 голосов
/ 17 октября 2019

Вы можете подождать, пока элемент станет видимым.

driver.FindElement(By.XPath("//a[@id='navbarDropdown']/u"));

Если проблема все еще существует, опубликуйте структуру DOM на своей веб-странице, это может быть связано с взаимодействием снеправильный элемент

...