使用Selenium在body onload之后单击动态生成的元素

时间:2014-01-31 14:28:37

标签: c# javascript selenium

我会尽力传达我的情况,因为我能给你的日期有限。

点击网页时,此按钮会创建一个新的标签,其HTML源代码如下所示。

<HTML><HEAD><META content="IE=5.0000" http-equiv="X-UA-Compatible">
<TITLE>Report Viewer Webpage</TITLE>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<SCRIPT src="javascript1.js"></SCRIPT>

<SCRIPT src="javascript2.js"></SCRIPT>

<SCRIPT src="anotherJavascript.js"></SCRIPT>
</HEAD>
<BODY onload="CallInit('ABC_DEFG_HIJKL_1_',''); window_onload();" onhelp=common_ShowHelp() leftMargin=0 topMargin=0 bgColor=#c6c6c6 currJsHelpVar="help_reports_viewer_dlg">
<OBJECT id=CRViewer codeBase="/viewer/activeXViewer/activexviewer.cab#Version=9,2,0,442" classid=CLSID:1123452WDUIHED:1325726GDUJBEA:12R432VD width="100%" height="99%" VIEWASTEXT>
<PARAM NAME="lastProp" VALUE="500">
<!--Bunch of other params go here-->
<PARAM NAME="_cx" VALUE="26987">
<SCRIPT language=VBScript>
<!--Some Business Logic-->
</SCRIPT>

<OBJECT id=ReportSource codeBase="/viewer/activeXViewer/activexviewer.cab#Version=9,2,0,442" classid=CLSID:1123452WDUIHED:1325726GDUJBEA:12R432VD width="1%" height="1%"></OBJECT>
<OBJECT id=ViewHelp codeBase="/viewer/activeXViewer/activexviewer.cab#Version=9,2,0,442" classid=CLSID:1123452WDUIHED:1325726GDUJBEA:12R432VD width="1%" height="1%"></OBJECT>
</BODY>
</HTML>

页面内容如下所示: enter image description here

当然这是一份水晶报道。

我想要做的就是点击位于文字Export button上方Print button旁边的整齐的小preview

我正在使用Selenium来自动化所有这些。但问题是,selenium只适用于HTML元素,我相信页面中的按钮是ActiveX控件或其他东西。并且仅在致电<Body>代码onLoad电话后加载它们。

最大的限制之一是此应用程序仅适用于IE,IE开发人员工具的强大功能无法让我检查按钮元素。 IE开发人员工具只是没有将这些按钮看作HTML元素。它们不存在于IE开发人员工具中。我顺便使用IE 9。

什么可以帮助我自动点击Export按钮?任何javascript都会有帮助??

当我查看此网页时,<Object>之后的第一个<Body>占据了该视图的所有空间。而且我认为随机生成的元素会动态地进入它内部。

2 个答案:

答案 0 :(得分:1)

您可以尝试FluentAutomation。它写在Selenium之上,并具有Click(x,y)坐标功能。我已经设法让它适用于Crystal报告。如果您有任何问题,请告诉我。

干杯,

答案 1 :(得分:0)

鉴于您正在显示的HTML代码,似乎该页面的内容是ActiveX。

因此,您自己无法使用Selenium进行任何自动化,Selenium仅适用于HTML。