我正在使用SAP NetWeaver(SAP WEB UI),发现用硒自动化很难。
我可以说大量对象的ID \名称实际上已从一页重新加载更改为另一页。
因此,我尝试使用_webDriver.FIndElement(By.Xpath(//*[contains(@id,'foo')]))
;
但是找不到该元素。尽管此操作(通过XPath查找元素)可以在一个对象上使用,但不适用于其他对象。非常沮丧
可能是我做错了或渲染的对象有问题。
这是一个HTML对象的示例:
<input id="grid#28.115#7,1#if" ct="I" lsdata="{0:'grid\x2328.115\x237,1\x23if',2:'100000008',4:10,8:true,9:true,13:'100\x25',14:'FORCEDLEFT',17:true,18:true,19:true,20:'0',25:true,41:false,44:{MaxInputLen:'10'}}" lsevents="{FieldHelpPress:[{ClientAction:'none'},{modalNo:'0',rgv:[{id:'28.115',submit:'X',type:'GuiGridView'}]}]}" type="text" maxlength="10" tabindex="-1" ti="-1" class="lsTblEdf3 lsTblEdf3NoEllipsis urBorderBox lsControl--explicitwidth lsField__input" readonly="true" value="100000008" autocomplete="off" autocorrect="off" name="grid#28.115#7,1#if" style="vertical-align:top;text-align:left;" title="">
这就是我试图找到它的方法,但是失败了:
var element = wait.Until(x => x.FindElement(By.XPath("//input[contains(@id,'115#7,1')]")));
答案 0 :(得分:0)
您可以使用ExpectedConditions
。参见下面的代码。
var elem = wait.Until(ExpectedConditions.ElementExists(By.CssSelector("input[id*='115#7,1']")));