如何使用Selenium获取项目的ID和值?

时间:2017-06-19 09:06:26

标签: c# selenium

我正在尝试检索我想回答的每个问题,我想知道ID和值。

我编写了以下代码,但我不知道如何完成它以便它给我ID和值:

    private IWebElement GetAnswerElement(int questionNumber, int answerNumber)
    {
        return BrowserFactory.Driver.FindElement(By.XPath(String.Format("//div[@id = 'client-assessment']/div/div/label", questionNumber, answerNumber)));
    }

代码如下所示:

<div id="client-assessment" style="overflow: hidden;">
    <div class="question">
        <label class="question">
            Here is my question1
        </label>
        <div class="radio">
            <label>
                <input id="xxx" name="xxx" onchange="UpdateAssessment()" 
        </div>

代码继续提出更多问题

希望有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

如果您想获得input元素的private IWebElement GetAnswerElement() { var xpath = "//div[@id='client-assessment']/div/div/label/input"; return BrowserFactory.Driver.FindElement(By.XPath(xpath)); } var element = GetAnswerElement() var id = element.GetAttribute("id"); var value = element.GetAttribute("value"); input属性,可以执行以下操作。

private IWebElement GetAnswerElement(string questionText, string answerText)
{
    var xpath = String.Format(
                    "//div[@id='client-assessment']/div/div/label/input[@id='{0}'][@value='{1}']", 
                    questionText, 
                    answerText);
    return BrowserFactory.Driver.FindElement(By.XPath(xpath));
}

var element = GetAnswerElement(
                  "Product_Contractor_ClientAssessment_Question06",
                  "Answer1");

请注意,我已更改选择private IWebElement GetAnswerElement(int questionNumber, int answerNumber) { var xpath = String.Format( "//div[@id='client-assessment']/div/div/label/input[ends-with(@id, '{0}')][ends-with(@value, '{1}')]", questionNumber.ToString("00"), answerNumber.ToString("0")); return BrowserFactory.Driver.FindElement(By.XPath(xpath)); } var element = GetAnswerElement(6, 1); 元素的xpath。

如果您想直接使用xpath检查这两个属性,可以执行以下操作。

questionNumber

或者,如果您只想检查字符串末尾的数字。

00

请注意,我使用KeyboardButton格式化InlineKeyboardButton值。我这样做是为了防止数字66在给出6时匹配。