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

Not able to locate input element using Selenium 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");

但输入元素未得到 selected。 请告诉我 select 输入元素的正确方法。

我会使用 dot 符号 来匹配 ulli 和 [=14= 的 类 ] 元素:

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

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

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

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

感谢回复。

它适用于此,

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

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

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

-阿米特