C# Selenium:如何找到textfield元素存在或不存在,然后对其进行处理?
一定是一个更好的方法,然后这个????(错误代码):(C# Selenium:如何找到textfield元素存在或不存在,然后对其进行处理?,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,一定是一个更好的方法,然后这个????(错误代码):( 使用列出passwordElements=driver.FindElements(By.Id(“密码”))。如果passwordElements中包含的项超过0项,则可以使用它。如果未找到项,则可以检查其他类型,然后适当地调用SendKeys。应首先检查元素是否存在。例如:driver.FindElements(),然后检查size(),如果size()>0->element exists->sendKeys它将引发一个异常,-这将引发一个
使用
列出passwordElements=driver.FindElements(By.Id(“密码”))
。如果passwordElements中包含的项超过0项,则可以使用它。如果未找到项,则可以检查其他类型,然后适当地调用SendKeys
。应首先检查元素是否存在。例如:driver.FindElements(),然后检查size(),如果size()>0->element exists->sendKeys它将引发一个异常,-这将引发一个异常---->var passwordFieldElement=driver.FindElement(By.Id(“密码”);我使用了FindElement(结尾是s):)是的,我刚刚在这里找到了答案,谢谢:)也许这个IWebElement passwordElements=driver.FindElement(By.Id(“密码”);?我不这么认为。如果我没记错的话,findelelement
将抛出OpenQA.Selenium.NoSuchElementException:当元素找不到它所期望的内容时,无法找到该元素FindElements
将尝试查找一些,如果没有找到,则返回一个空的列表。我面前没有VisualStudio,在那里我可以查看我编写的使用此工具的测试。明天早上我一到办公室就会尝试更新。这会引发一个异常:(var passwordFieldElement=driver.FindElement(By.Id(“password”));是的..我说的是callFindElement
而不是FindElement
。你需要调用末尾带有“s”的那一个,它将返回集合类型。是的,我刚刚在这里找到了答案,谢谢:)
<input id="password" name="password" maxlength="500" size="18" autocomplete="off" type="password">
<input id="passcode" name="password" maxlength="6" size="18" autocomplete="off" type="text">
if input id "password" exist then enter "mytext" otherwise
else if input id "passcode" exist then enter "myPassCode"
else throw exception (missing password,passcode text fields)
try
{
driver.FindElement(By.Id("password")).SendKeys("myPassword");
}
catch (Exception ex)
{
try
{
driver.FindElement(By.Id("passcode")).SendKeys("myPassCode");
}
catch (Exception ex)
{
}
}