如何使用python从selenium中的禁用字段获取文本

时间:2017-10-12 13:40:06

标签: python selenium-webdriver

大家好我想从被禁用的元素中获取文本。它的值取决于我在注册时填写的电子邮件地址的域名。该元素的HTML代码是:

<select _ngcontent-thq-32="" class="form-control formInputHeight ng-untouched ng-pristine" data-dropdownjs="true" id="compName" name="companyId" required="" disabled="">
    <option _ngcontent-thq-32="" disabled="disabled" selected="selected" value="0">Company Name</option>
    <!--template bindings={}-->
</select>

我用来从这个元素中获取文本的Python代码是:

disabled_input_field = driver.find_element_by_xpath('//*[@id="compName"]')
    value = disabled_input_field.get_attribute('value')
    return value

但每次我的测试用例都失败了。请建议正确的方法。

2 个答案:

答案 0 :(得分:1)

问题是您正在尝试检索value元素的SELECT,它本身没有任何价值。您希望从所选OPTION获取值。

from selenium.webdriver.support.ui import Select
...
return Select(driver.find_element_by_id("compName")).first_selected_option.text

答案 1 :(得分:0)

我似乎不是在寻找正确的元素,而是为了它的父母。尝试这样的事情:

disabled_input_field = driver.find_element_by_xpath('//*[@id="compName"]/option')
value = disabled_input_field.get_attribute('value')
return value