Selenium Firefox webdriver 看不到给定的 webelement 但 Chrome 可以吗?
Selenium Firefox webdriver cannot see webelement given but Chrome can?
我有一个测试用例可以更改弹出对话框中的时间值。为此,我创建了一个名为 setDateInput
.
的方法
public void setDateInput(Object date, WebElement input_date, String format) throws InterruptedException {
if(date == null) {
//leave the date as it is.
return;
} else if( (date instanceof Date) ) { //arg date is passed.
String new_date = new SimpleDateFormat(format).format(date);
input_date.clear();
input_date.sendKeys(new_date);
return;
} else if(date instanceof String) {
input_date.clear();
input_date.sendKeys((String)date);
return;
}
}
当它被下面的代码调用时,Chrome 驱动程序将 startInput
更改为 23:55 但 firefox 既不 clear()
也不 sendKeys()
。
setDateInput("23:55", startInput, "HH:mm");
所以,我的问题是,在 Firefox webdriver 中是否有不同的方法来处理文本类型输入?
提前致谢。
更新:
HTML中的start_time元素代码如下
<input type="text" id="StartTime" value="00:01" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" placeholder="HH:MM" class="form-control input-text time-field-hm" required="" inputmode="numeric">
我自己找到了答案。此解决方案并未完全解决问题,但更多的是解决方法。
我刚刚在 clear()
方法之前添加了一个方法 click()
。然后 Firefox webdriver 设法专注于该元素。它清除并向输入字段发送一个 23:55
字符串。解决问题的奇怪方法。
或者简单地 sendKeys("")
也可以。希望这对您有所帮助。
我有一个测试用例可以更改弹出对话框中的时间值。为此,我创建了一个名为 setDateInput
.
public void setDateInput(Object date, WebElement input_date, String format) throws InterruptedException {
if(date == null) {
//leave the date as it is.
return;
} else if( (date instanceof Date) ) { //arg date is passed.
String new_date = new SimpleDateFormat(format).format(date);
input_date.clear();
input_date.sendKeys(new_date);
return;
} else if(date instanceof String) {
input_date.clear();
input_date.sendKeys((String)date);
return;
}
}
当它被下面的代码调用时,Chrome 驱动程序将 startInput
更改为 23:55 但 firefox 既不 clear()
也不 sendKeys()
。
setDateInput("23:55", startInput, "HH:mm");
所以,我的问题是,在 Firefox webdriver 中是否有不同的方法来处理文本类型输入?
提前致谢。
更新: HTML中的start_time元素代码如下
<input type="text" id="StartTime" value="00:01" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" placeholder="HH:MM" class="form-control input-text time-field-hm" required="" inputmode="numeric">
我自己找到了答案。此解决方案并未完全解决问题,但更多的是解决方法。
我刚刚在 clear()
方法之前添加了一个方法 click()
。然后 Firefox webdriver 设法专注于该元素。它清除并向输入字段发送一个 23:55
字符串。解决问题的奇怪方法。
或者简单地 sendKeys("")
也可以。希望这对您有所帮助。