我正在尝试在基于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”,“创建新事件”);
我该怎么做,当单击该按钮时,它正在打开网站查找该图片并使用安装的浏览器(如果没有其他方法)初始化对其的单击?
答案 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);