[英]Populating a CheckedListBox with extracted labels from a CheckBoxList in Selenium C#
我有一個使用Selenium進入頁面並為用戶自動執行任務的表單。 頁面上唯一更改的部分是CheckBoxList,並且我一直在嘗試從中提取標簽並將它們鏡像到表單的CheckedListBox,以便用戶可以在此處選擇而無需查看頁面。
到目前為止,我有這個:
IList<IWebElement> vehicleGroups = Builder.Driver.FindElements(By.ClassName("vehGrp"));
String[] vehicleText = new String[vehicleGroups.Count];
int i = 0;
foreach (IWebElement element in vehicleGroups)
{
vehicleText[i++] = element.Text;
vehicleGroupList.Items.Add(element.Text);
}
只要獲得正確數量的元素並填充表單,該方法就可以正常工作,但是vehicleText中的所有標簽都是空白(或只是一個空格)。
標簽之一的HTML的示例是
<label><input type="checkbox" name="searchQuery.vehicleGroups[0].isSelected" value="on" class="vehGrp"> abcd/efgh ijkl mn (opqrst)</label>
我錯過了什么嗎?還是“”弄亂了標簽文本? 我需要的是“ abcd / efgh ijkl mn(opqrst)”,但是它和元素的潛在數量可以每天更改。
vehicleGroups
是<input>
元素,而不是包圍它們的<label>
,並且它們沒有文本。 這是預期的行為。
您需要使用以下方法獲取周圍的<label>
元素: https : //stackoverflow.com/a/12194481/7866667
var vehicleGroupInputElements = driver.FindElements(By.ClassName("vehGrp"));
var vehicleGroupNames = vehicleGroupInputElements
.Select(e => e.FindElement(By.XPath("..")))
.Select(e => e.Text)
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.