首页 文章

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

提问于
浏览
0

我是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 回答

  • 1

    我会使用 dot 表示法来匹配 ulliinput 元素的类:

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

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

    • 它在iframe中,您需要切换到它

    • 您需要等待元素出现

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

  • 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

相关问题