我正在使用webdriver进行自动化,每个问题都有一些单选按钮,在单选按钮旁边有一些文本,如是/否。以下是我通过检查元素
获得的代码<label class="fs-508-label" for="editTemplate-editForm-content-flowTemplateFull-genericPage-_id162-page_0-profilerQuestionnaireBlock-_id167-page__1-questionnaire-_id169-0-questionRadio_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__78620">
<input name="editTemplate-editForm-content-flowTemplateFull-genericPage-_id162-page_0-profilerQuestionnaireBlock-_id167-page__1-questionnaire-_id169-0-questionRadio" id="editTemplate-editForm-content-flowTemplateFull-genericPage-_id162-page_0-profilerQuestionnaireBlock-_id167-page__1-questionnaire-_id169-0-questionRadio_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__78620" value="com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__78620" type="radio" class="possibleanswers" onclick="onChoicePicked(this)">
No
</label>
你可以帮我解决一下吗?
我目前能够使用获取单选按钮
element = browser.find_element_by_name(name got form above)
但是element.text并没有给我'不',而是空洞让我感到困惑。我可能会在这里遗漏一些东西。
答案 0 :(得分:1)
您的元素为空,这是正确的行为。问题是,通过执行browser.find(“idblahblah”),您只需获得单选按钮元素本身,而不是文本,因为这是其他元素。文本本身是一个可以通过执行driver.findElement(By.className(“fs-508-label”))找到的元素,但是这不是最佳解决方案,因为类值往往会发生变化。 我建议稍微更改html,如下所示:
<input id="true_radio_button" type="radio" name="bar"
value="bar_radio_true" checked="checked"/>
<label id="whatever" for="true_radio_button">True</label>
这样您现在可以使用ID轻松找到单选按钮,然后找到相应的标签。检查是否正确可以通过检查'for'属性是否等于单选按钮ID - label.getAttribute(“for”)等于radio_button_ID
来完成编辑: 使用此:driver.findElement(By.className(“fs-508-label”))应该可以正常工作