如何使用webdriver python获取与单选按钮对应的文本

时间:2012-08-30 09:04:29

标签: selenium webdriver selenium-webdriver

我正在使用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并没有给我'不',而是空洞让我感到困惑。我可能会在这里遗漏一些东西。

1 个答案:

答案 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”))应该可以正常工作