如何查找元素-SAP NetWeaver

时间:2018-07-16 06:04:28

标签: c# selenium selenium-webdriver

我正在使用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')]")));

1 个答案:

答案 0 :(得分:0)

您可以使用ExpectedConditions。参见下面的代码。

var elem = wait.Until(ExpectedConditions.ElementExists(By.CssSelector("input[id*='115#7,1']")));