C# 无法使用Selenium WebDriver定位输入元素
我是硒的新手。在特定场景中,我无法捕获输入元素。代码如下:C# 无法使用Selenium WebDriver定位输入元素,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,我是硒的新手。在特定场景中,我无法捕获输入元素。代码如下: <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-valu
<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>
但未选择输入元素。
请告诉我选择输入元素的正确方法。我将使用点
符号来匹配ul
、li
和输入
元素的类别:
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");
这是使用等待的正确方式吗
另外,有人能指出一些参考资料来解释如何使用SeleniumWebDriver处理框架吗
-Amit想指出,@Amit,这个符号使用的是
By.CssSelector
在CSS中相当于[class~=''.'']
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("ul.form1 li.firstName input.text"))).SendKeys("Vipul");