在基于JavaScript的网站上查找字符串并初始化点击

时间:2019-04-17 14:39:54

标签: c# selenium selenium-webdriver phantomjs

我正在尝试在基于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 :(得分:0)

确定要找到所需的元素吗? 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);