Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium WebDriver C#-在包含多个ASP文件的经典ASP网页中查找元素_C#_Selenium Webdriver_Asp Classic - Fatal编程技术网

Selenium WebDriver C#-在包含多个ASP文件的经典ASP网页中查找元素

Selenium WebDriver C#-在包含多个ASP文件的经典ASP网页中查找元素,c#,selenium-webdriver,asp-classic,C#,Selenium Webdriver,Asp Classic,我正在尝试为一个使用经典ASP构建的网站编写自动化测试用例。每个网页(在浏览器中查看时)实际上是使用多个ASP文件创建的,每个ASP文件在整个网页中都有一个面板。尝试使用SeleniumWebDriver时,我可以在主内容中看到元素,但在“包含的ASP文件”中找不到元素 例如,导航面板的内容来自ASP文件;这是通过这样做来实现的 navPanel.Body.Nav.Location.href = "navi.asp" 虽然在浏览器中查看时会显示navi.asp页面的内容,但我无法通过以下方式获

我正在尝试为一个使用经典ASP构建的网站编写自动化测试用例。每个网页(在浏览器中查看时)实际上是使用多个ASP文件创建的,每个ASP文件在整个网页中都有一个面板。尝试使用SeleniumWebDriver时,我可以在主内容中看到元素,但在“包含的ASP文件”中找不到元素

例如,导航面板的内容来自ASP文件;这是通过这样做来实现的

navPanel.Body.Nav.Location.href = "navi.asp"
虽然在浏览器中查看时会显示
navi.asp
页面的内容,但我无法通过以下方式获取其内容:

driver.FindElements(By.CssSelector("*"))
有人能告诉我如何找到“包含”asp文件中定义的元素吗

这里是附加信息-在浏览器中查看的html源的摘要如下-正如您在下面看到的,有多个元素,默认情况下,WebDriver似乎正在拾取标记最后出现的元素,即“内容”框架的内容。但是,我想访问“导航”框架中的元素。如何在这些帧之间进行切换。我尝试使用了
driver.SwitchTo().Frame(“Nav”)
,但它显然不起作用,因为这个框架在“内容”框架中不可见


构建网页时使用哪种语言并不重要,您可以使用浏览器查看要使用的CSS选择器

使用Chrome(您也可以在不同的浏览器中执行类似的操作):

右键单击您感兴趣的元素并按“检查元素”,然后转到“元素”选项卡,右键单击该元素的html标记并选择“复制CSS路径”,这将将正确的CSS选择器复制到您的剪贴板

请看下图:

我假设有一个
iframe
。如果没有,请提供stacktrace以及您是否尝试使用Java脚本?如果没有,试试这个<代码>窗口.frames['frame_name'].document.getElementsByName('element_name')