在Internet Explorer中找不到WebElement(单选按钮列表)

时间:2016-07-21 19:07:59

标签: c# selenium-webdriver internet-explorer-11

我有一个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']

应用程序本身默认为单选按钮的第一个值,我似乎无法选择我需要的第四个值。任何人都可以提供我可以尝试的其他建议或建议吗?

2 个答案:

答案 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