Как позвонить по ссылке внутри <td>Селен C # Chrome Driver - PullRequest
0 голосов
/ 25 октября 2018

Мне нужно получить доступ к ссылке внутри td.Вот мой пример HTML-кода

<tr id="printback" style="">
    <td align="left" class="three">
        <a href="https://rems.brib.lk/RenderReport_Version2.aspx??Product_Id=MjgwMQ%3d%3d-J2XNpfmNU8Q%3d&amp;RUID=MTEwMDA1ODkxMjE%3d-urBhzLzRvr8%3d&amp;FinalResult=T#" onclick="btnBack(&#39;en-US&#39; );return false;" class="three">
            <b> Back |</b>
        </a>
        <a href="https://rems.brib.lk/RenderReport_Version2.aspx??Product_Id=MjgwMQ%3d%3d-J2XNpfmNU8Q%3d&amp;RUID=MTEwMDA1ODkxMjE%3d-urBhzLzRvr8%3d&amp;FinalResult=T#" onclick="AlertandPrint();return false" class="three">
            <b> Print </b>
        </a>
        <a id="save" href="https://rems.brib.lk/RenderReport_Version2.aspx??Product_Id=MjgwMQ%3d%3d-J2XNpfmNU8Q%3d&amp;RUID=MTEwMDA1ODkxMjE%3d-urBhzLzRvr8%3d&amp;FinalResult=T#" class="three" onclick="document.getElementById(&#39;hiddenButton&#39;).click();">
            <b>| Save</b>
        </a>
    </td>
</tr>

<tr id="printfriendly" align="left" style="display: none;">
    <td>
        <a href="https://rems.brib.lk/RenderReport_Version2.aspx??Product_Id=MjgwMQ%3d%3d-J2XNpfmNU8Q%3d&amp;RUID=MTEwMDA1ODkxMjE%3d-urBhzLzRvr8%3d&amp;FinalResult=T#" onclick="btnDisplayAll_Click(&#39;en-US&#39;);return false;" class="three">
            <img src="./brib Report Number _ W-0044804594_2018_files/b_print.gif" alt="print friendly version" border="0" id="img" style="display: none;">
            <b>Print Friendly Version (Entire Credit Report)</b>
        </a>
        <img src="./brib Report Number _ W-0044804594_2018_files/spacer.gif" width="2%" border="0" id="img">
        <a href="https://rems.brib.lk/RenderReport_Version2.aspx??Product_Id=MjgwMQ%3d%3d-J2XNpfmNU8Q%3d&amp;RUID=MTEwMDA1ODkxMjE%3d-urBhzLzRvr8%3d&amp;FinalResult=T#" onclick="btnDisplayCreditSummary_Click(&#39;en-US&#39;);return false;" class="three">
            <b> Print Friendly Version (Credit Summary) </b>
        </a>
    </td>
</tr>

И я попытался следующий код, чтобы решить эту проблему.

var rptListTab = driver.FindElementById("printfriendly");
var rowsRptListTab = rptListTab.FindElements(By.TagName("td"));

for (int i = 0; i < rowsRptListTab.Count; i++)
{
    if (i == 0)
    {
        var link = rowsRptListTab[i];
        link.Click();

        break;
    }
}

Выше код отлично работает для printfriendly.Но проблема в том, что в следующем коде (printback).Как я могу получить доступ к id="save" ссылке внутри первого td

var printBack = driver.FindElementById("printback");
var rowsprintBack = printBack.FindElements(By.TagName("td"));

for (int i = 0; i < 3; i++)
{
    if (i == 1)
    {
        var link = rowsprintBack[i];
        link.Click();

        break;
    }

}

1 Ответ

0 голосов
/ 25 октября 2018

Я думаю, вам не нужно обращаться к ссылке через цикл.

Вы можете позвонить напрямую следующим образом, Попробуйте эти два

Метод 1

 driver.FindElementById("save").Click();

Метод 2

 driver.FindElement(By.XPath("//a/b[contains(text(),'| Save')]")).Click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...