大家好我想从被禁用的元素中获取文本。它的值取决于我在注册时填写的电子邮件地址的域名。该元素的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
但每次我的测试用例都失败了。请建议正确的方法。
答案 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