亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用硒處理年份和月份下拉列表?

如何使用硒處理年份和月份下拉列表?

慕神8447489 2022-09-21 21:35:16
任何人都可以指導我,如何使用Selenium中的Java選擇年份和月份下拉列表?使用了下面提到的代碼,但它不起作用。公文代碼:{List<WebElement> NomDOBYear =  driver.findElements(By.className("ui-datepicker-year"));Select selectYear= new Select((WebElement) NomDOBYear);selectYear.selectByVisibleText("1991");WebElement NomDOBMonth = (WebElement) driver.findElements(By.className("ui-datepicker-year"));Select selectMonth= new Select(NomDOBMonth);selectMonth.selectByVisibleText("Nov");}
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊


driver.findElement(By.className(“ui-datepicker-year”));


而不是


driver.findElements(By.className(“ui-datepick-year”));


當您使用驅動程序.find元素(By.className(“ui-日期選取器-年份”))時,您正在將返回元素存儲在列表中(我預計有 2 個或更多元素與“ui-日期選取器-年份”具有相同的類名)。因此,如果是這種情況,那么您應該注意,硒的構造函數“Select”類將“WebElement”作為參數,它可以是存儲在列表中的第一個或任何元素。那么你的代碼應該寫成這樣-


List<WebElement> NomDOBYear =  driver.findElements(By.className("ui-datepicker- 

year"));

Select selectYear= new Select(NomDOBYear.get(0));//first element of the list

selectYear.selectByVisibleText("1991");



WebElement NomDOBMonth = driver.findElement(By.className("ui- 

datepicker-month"));// you got the class name wrong here

Select selectMonth= new Select(NomDOBMonth);

selectMonth.selectByVisibleText("Nov");

否則,如果整個 DOM 中只有 1 個元素的類名為“ui-日期選取器-年”或“ui-日期拾取器-月”,那么您的代碼應編寫為 -


WebElement NomDOBYear =  driver.findElement(By.className("ui-datepicker-year"));

Select selectYear= new Select(NomDOBYear);

selectYear.selectByVisibleText("1991");



WebElement NomDOBMonth = driver.findElement(By.className("ui-datepicker-month"));

Select selectMonth= new Select(NomDOBMonth);

selectMonth.selectByVisibleText("Nov");

我仍然建議使用 XPath 來查找元素。


查看完整回答
反對 回復 2022-09-21
  • 1 回答
  • 0 關注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號