无法使用Selenium WebDriver定位输入元素

时间:2015-03-15 05:14:17

标签: c# selenium selenium-webdriver webdriver

我是Selenium的新手。在特定场景中,我无法捕获输入元素。下面是代码:

<ul class = "form1">
    <li class="firstName">
        <input placeholdervalue="First name" tabindex="1" placeholder="First name" class="text" placeholdevalue="First name" data-input-rule="name" data-value-rule="required" maxlength="20" type="text">
    </li>
</ul>

我想找到输入元素。我尝试使用定位器By.ClassNameBy.CssSelector("input[class='text placeholder']")进行定位,并尝试使用:

wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("input[className='text' and placeholdevalue='First name'"))).SendKeys("Vipul");

但输入元素未被选中。 请让我知道选择输入元素的正确方法。

2 个答案:

答案 0 :(得分:1)

我会使用 dot符号来匹配ulliinput元素的类:

By.CssSelector("ul.form1 li.firstName input.text")

如果仍然找不到该元素,那么可能有两个最常见的原因:

  • 它位于iframe中,您需要切换到它
  • 您需要等待元素出现

我会扩展这些项目,以防您在查找元素时仍然遇到问题。

答案 1 :(得分:1)

感谢您的回复。

它适用于此,

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("ul.form1 li.firstName input.text"))).SendKeys("Vipul"); 

这是使用等待的正确方法吗?

此外,任何人都可以指出使用selenium webdriver解释使用框架的资源吗?

-Amit