Поиск строки на веб-сайте, основанном на JavaScript, и щелчок мышью - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь найти изображение на веб-сайте, основанном на JavaScript, и нажать на него. Ниже вы можете увидеть код, который я пробовал, но всегда получая ошибку, веб-сайт может быть открыт только через Internet Explorer, никакой другой браузер не отобразит его должным образом. Что я должен изменить или как мне подойти, чтобы нажатие на кнопку открывало веб-сайт, находило изображение и инициировало клик по нему?

        var options = new PhantomJSOptions();
        options.AddAdditionalCapability("IsJavaScriptEnabled", true);
        //System.setProperty("webdriver.ie.driver");
        IWebDriver driver = new InternetExplorerDriver();
        //IWebDriver driver = new PhantomJSDriver("phantomjs Folder Path", options);
        //IWebDriver driver = ($"c:\\Users\\kocsism\\Documents\\phantomjs-2.1.1-windows\\phantomjs-2.1.1-windows\\bin\\", options);
        driver.Navigate().GoToUrl("url");

        try
        {
            string pagesource = driver.PageSource;
            //driver.FindElement(By.Id("New Incident..."));
            //driver.FindElement(By.LinkText("New Incident..."));
            driver.FindElement(By.Name("new_incident_16.png"));
            Console.Write("your element has been found");
        }
        catch (Exception some_exception)
        {
            Console.WriteLine(some_exception.Message);
        }
        Console.Read();

Этот код запускается при нажатии кнопки, и при попытке я получаю следующую ошибку: «phantomjs: //platform/console++.js: 263 по ошибке». Также в качестве дополнительного примера приведен пример кода за файлом javascript.

"ahdtop.c_new ('cr', 0, '', '', 'PRESET = type: I')", 1, 0, 0, "I", "", _parentId, "/Something/img/incident_10.png", "создать новый инцидент");

Как я могу это сделать, когда при нажатии на кнопку открывается веб-сайт, который находит эту картинку, и нажимает на нее с помощью установленного, т. Е. Браузера, может быть, если нет другого способа?

1 Ответ

0 голосов
/ 17 апреля 2019

Вы уверены, что нашли элемент, который искали?By.Name ("new_incident_16.png") будет искать тег вроде:

<img name="new_incident_16.png"/>

Просто хотел подтвердить, так как "new_incident_16.png" похоже, что это будет src, а не имя.

Если он находит элемент, вы можете щелкнуть по нему одним из следующих способов:

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("url");
IWebElement button = driver.FindElement(By.Name("new_incident_16.png"));
button.Click();

Если по какой-либо причине это не работает, вы можете нажатьКнопка через Javascript со следующим:

IWebElement button = driver.FindElement(By.Name("new_incident_16.png"));
IJavaScriptExecutor js = driver;
js.executeScript("arguments[0].click();", button);
...