Получить последний элемент из таблицы, используя Selenium Driver C # - PullRequest
0 голосов
/ 20 сентября 2018

Я недавно работаю с драйвером селена и C #, и у меня мало проблем.

У меня есть таблица, созданная приложением asp.net webforms.Я не могу изменить это программное обеспечение, и мне нужно взять последнюю ссылку из этой таблицы.

Это код таблицы, созданный приложением asp.net webforms.

<div class="table table-responsive">
                            <table class="table table-bordered table-hover table-condensed" id="_ctl0_ContentPlaceHolder_grdResults" style="border-collapse:collapse;" border="1" rules="all" cellspacing="0">
	
	<tbody>
		<tr align="right" class="text-bold bg-gray">
			<td colspan="3"><span>1</span></td>
		</tr>
		<tr class="text-bold bg-gray">
			<td style="width:32px;"> 
			</td>
			<td>
				Description
			</td>
			<td>
				Expired?
			</td>
		</tr>
		<tr>
			<td>
                        	<input name="chkView213311910" class="check" id="chkView213311910" style="border-style: none;" type="checkbox" value="213311910" /> 
                        </td>
			<td>
                        	<table>
					<tbody>
						<tr>
							<td>
							</td>
							<td title="Expired" style="width: 20px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
							</td>
							<td style="width: 25px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
								<a href="ShowObjectFile.aspx?ObjectID=213311910" target="_blank">
									<i class="fa fa-lg fa-file-pdf-o" hspace="4" alt="File type PDF">
									</i>
								</a>
							</td>
							<td>
								<font color="dimgray">
									<a href="ViewObject.aspx?ObjectID=213311910">
										First Link
									</a>
								</font>
							</td>
						</tr>
					</tbody>
				</table>
                        </td>
			<td>
                        	<span id="_ctl0_ContentPlaceHolder_grdResults__ctl3_lblCheckedOut">Não</span>
                        </td>
		</tr>
		<tr>
			<td>
                        	<input name="chkView213312924" class="check" id="chkView213312924" style="border-style: none;" type="checkbox" value="213312924" /> 
                        </td><td>
                        	<table>
					<tbody>
						<tr>
							<td>
							</td>
							<td style="width: 20px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
							</td>
							<td style="width: 25px; border-right: 1px solid #B3B3B3;   margin-right: 15px;    display:  inline-block;    padding-right: 25px;">
								<a href="ShowObjectFile.aspx?ObjectID=213312924" target="_blank">
									<i class="fa fa-lg fa-file-pdf-o" hspace="4" alt="file Type pdf">
									</i>
								</a>
							</td>
							<td>
								<font color="dimgray">
									<a href="ViewObject.aspx?ObjectID=213312924">
										Second Link
									</a>
								</font>
							</td>
						</tr>
					</tbody>
				</table>
 			</td><td>

Помимо нажатия на последнюю ссылку (Вторая ссылка), мне также нужно сохранить ViewObject.aspx? ObjectID = 213312924 (это гдеЯ пойду, когда я нажму на ссылку) на переменную.

Может кто-нибудь, пожалуйста, помогите мне с этим вопросом?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете сохранить все ссылки в List из IWebElements, а затем выбрать последнюю.Как то так:

IWebElement el = driver.FindElement(By.XPath(""));
IList<IWebElement> allLinks = el.FindElements(By.TagName("a"));
IWebElement linkYouNeed = allLinks[allLinks.Count- 1];
...