我想驗證Selenium IDE/Webdriver中的所有輸入文本字段是否爲空。假設如果有一種方法可以返回具有屬性「text」或「textarea」的所有HTML輸入元素,那麼我可以遍歷所有這些元素並檢查文本上下文是否爲空。使用Selenium驗證所有文本輸入字段爲空
但我找不到這樣的方法。我可以通過其他方式來做到這一點?
謝謝
我想驗證Selenium IDE/Webdriver中的所有輸入文本字段是否爲空。假設如果有一種方法可以返回具有屬性「text」或「textarea」的所有HTML輸入元素,那麼我可以遍歷所有這些元素並檢查文本上下文是否爲空。使用Selenium驗證所有文本輸入字段爲空
但我找不到這樣的方法。我可以通過其他方式來做到這一點?
謝謝
你試過了。
driver.findElements(By)
這會給你一個列表,使用指定的定位器u在頁面上可用的所有webelements。
以下是我的工作方式。在某些情況下,我會捕獲所有輸入文本和textarea和密碼,並將這些元素存儲在IWebElement的列表中。然後我可以遍歷列表並驗證我想要的任何內容。
private List<IWebElement> GetTextFields(IWebDriver driver)
{
List<IWebElement> textFields;
try{
textFields.AddRange(driver.FindElements(By.CssSelector("input[type='text']").ToList());
}
catch {
//throw exception or log exception
}
try {
textFields.AddRange(driver.FindElements(By.TagName("textarea").ToList());
}
catch {
//throw exception or log exception
}
textFields.RemoveRange(i => !i.Displayed); //removes all hidden fields
return textFields
}
下面是如何驗證沒有該列表的文本。
foreach(IWebElement element in textFields)
{
if(element.text != "")
{
//log error or throw exception
}
}
請考慮.text不會在輸入字段上工作,並且您必須獲取value屬性。
bool areAllFieldsClear()
{
var myFields = driver.FindElements(By.Xpath("//input"));
foreach(var field in myFields)
{
if(field.GetAttribute("value") != "") {
return false; //field.Clear(); maybe?
}
return true;
}
對不起,遲到了遊戲。遇到這個尋找別的東西。 – Highstead
我在改變時得到了**如果**這樣的條件'if(field.getAttribute(「value」)。isEmpty())'。 '!= null'或'!=「」'條件對我來說不起作用。 – user123