我有一个WebElement,在IE 10中找不到,但在FF 47.1和Chrome 51中有效。
[FindsBy(How = How.XPath, Using = "Foo's XPath")]
IWebElement Foo = null;
在运行时我也调用了
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("Foo's XPath")));
但是我只收到了IE10的NullReferenceException。我甚至也尝试过睡觉。有人可以告诉我我还能做什么b / c我的程序必须运行IE。
当问到这个问题时,我们已升级到IE 11,但我仍然看到完全相同的问题。我无法提供具体的HTML代码,但我想详细说明一下webelement foo。
我称之为“foo”的单选按钮包含在下面的
中div
table
tbody
tr
td
input id = "foo"
当我调用xpath时(我也尝试过id和css选择器)
.//*[@id='foo_rblArgType_4']
应用程序本身默认为单选按钮的第一个值,我似乎无法选择我需要的第四个值。任何人都可以提供我可以尝试的其他建议或建议吗?
答案 0 :(得分:0)
根据兄弟姐妹的要素,您可以选择以下选项:
//tr[4]//*[contains(@id, 'foo')]
//td[4]/*[contains(@id, 'foo')]
//*[contains(@id, 'foo')][4]
如果不改变,你也可以使用[@ id ='foo']
替换[contains(@id,'foo')]如果这些都不起作用,那么请提供所有4个输入的结构。
答案 1 :(得分:0)
尝试按ID识别元素。
[FindsBy(How = How.Id, Using = "foo")]
IWebElement Foo = null;
还要确保元素未隐藏。还尝试增加元素的大小,因为有时web驱动程序无法定位元素。
如果在单选按钮上执行任何操作时仍有问题,请尝试使用JavaScriptExecutor。 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html