2015-04-15 48 views
2

如何使用硒的特殊元素设置值?
这是一种设置日期的输入。我们可以通过点击数值来更改日期,然后输入好的数字。
物体的图像:http://s4.postimg.org/uuh8d3mo9/Sans_titre.png
这里对象的HTML代码:
如何使用硒与对象标签进行交互

<OBJECT style="DISPLAY: inline" id="startdatex" class="I_date onclick=setModeType=0;" border="0" classid="clsid:2EFBADD7-C6C3-42C9-9CF9-5A42D2517250" width="120" height="16"> 
    <PARAM NAME="_Version" VALUE="65536"> 
    <PARAM NAME="_ExtentX" VALUE="2381"> 
    <PARAM NAME="_ExtentY" VALUE="423"> 
    <PARAM NAME="_StockProps" VALUE="0"> 
    <PARAM NAME="ControlType" VALUE="4"> 
    <PARAM NAME="BSystemColors" VALUE="0"> 
    <PARAM NAME="BSystemFonts" VALUE="0"> 
    <PARAM NAME="UpDownDisable" VALUE="1"> 
    <PARAM NAME="BHorSpinMode" VALUE="1"> 
    <PARAM NAME="PopUpDisable" VALUE="0"> 
    <PARAM NAME="ReadOnly" VALUE="0"> 
    <PARAM NAME="Alignment" VALUE="2"> 
    <PARAM NAME="TotalSeconds" VALUE="0"> 
    <PARAM NAME="DurationMax" VALUE="35996400"> 
    <PARAM NAME="CustomControlFormat" VALUE="dd/MM/yyyy"> 
    <PARAM NAME="DateTimeFormat" VALUE=""> 
    <PARAM NAME="DateTime" VALUE="04/06/2015"> 
    <PARAM NAME="FirstDayOfWeek" VALUE="1"> 
    <PARAM NAME="IsoWeekMode" VALUE="-1"> 
    <PARAM NAME="BorderWidth" VALUE="0"> 
    <PARAM NAME="BorderColor" VALUE="10066329"> 
    <PARAM NAME="ControlBorderType" VALUE="0"> 
    <PARAM NAME="DTBkColor" VALUE="16777215"> 
    <PARAM NAME="DTTxtColor" VALUE="0"> 
    <PARAM NAME="DTSelBkColor" VALUE="0"> 
    <PARAM NAME="DTSelTxtColor" VALUE="16448250"> 
    <PARAM NAME="BtnFaceColor" VALUE="12961221"> 
    <PARAM NAME="BtnShadowColor" VALUE="0"> 
    <PARAM NAME="BtnHiLiteColor" VALUE="0"> 
    <PARAM NAME="PopUpTxtColor" VALUE="0"> 
    <PARAM NAME="PopUpGreyTxtColor" VALUE="16777215"> 
    <PARAM NAME="PopUpTitleTxtColor" VALUE="0"> 
    <PARAM NAME="PopUpTitleFntName" VALUE="Verdana"> 
    <PARAM NAME="PopUpDayFntName" VALUE="Verdana"> 
    <PARAM NAME="PopUpDateFntName" VALUE="Arial"> 
    <PARAM NAME="PopUpTitleFntWeight" VALUE="20"> 
    <PARAM NAME="PopUpDayFntWeight" VALUE="0"> 
    <PARAM NAME="PopUpDateFntWeight" VALUE="400"> 
    <PARAM NAME="PopUpTitleFntItalic" VALUE="0"> 
    <PARAM NAME="PopUpDayFntItalic" VALUE="0"> 
    <PARAM NAME="PopUpDateFntItalic" VALUE="0"> 
    <PARAM NAME="PopUpXratio" VALUE="1"> 
    <PARAM NAME="PopUpYratio" VALUE="1"> 
    <PARAM NAME="LanguageID" VALUE="-1"> 
    <PARAM NAME="exe" VALUE=""> 
    <PARAM NAME="dir" VALUE=""> 
    <PARAM NAME="server" VALUE=""> 
    <PARAM NAME="sid" VALUE=""> 
    <PARAM NAME="lid" VALUE="1036"> 
</OBJECT> 

我试图找到对应的对象帕拉姆,但没有。 The 只是今天的日期

编辑:我试图得到'DateTime'参数。但是我得到一个异常:StaleReferenceException,该元素不再有效。我认为该网站以低延迟刷新参数。

driver.FindElementByXPath("//param[@name='DateTime']").GetAttribute("outerHTML"); 

那么我该如何改变这个日期的值呢?有使用Selelenium或使用其他插件的解决方案吗?

回答

1

我认为的XPath应努力获取列表对象中的所有项目:

List<WebElement> parameters = driver.findElements(
    By.xpath(".//[local-name()='OBJECT']/[local-name()='PARAM']") 
); 

=== UPDATE ===

尝试使用CSS定位器,而不是...它会可能在IE8上更可靠 ...或更好:使用JavascriptExecutor并使用纯Javascript获取元素 。

+0

谢谢你的anwser。但我想找到如何改变对象的价值。获取参数不会帮助我,我试图在调试器中编辑一些参数,但没有任何反应。 – Babacool321

+0

它很容易。一旦你拥有了这个对象,Selenium就拥有了一套控制属性的属性方法。 – djangofan

+0

设置哪些属性?我测试过设置一些随机的参数值,但它什么也没有做:( – Babacool321

相关问题