我正在尝试检索我想回答的每个问题,我想知道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>
代码继续提出更多问题
希望有人可以帮助我。
答案 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时匹配。