2015-12-02 94 views
1

我想从多选场(类别)的随机值,使Python中硒测试得到的值:Python的硒 - 多选场(Django的选择2) - 无法通过XPATH

tag = driver.find_element_by_xpath("//*[@id='s2id_autogen2']") 

如果我要发送只是一个字符串,该工程如:

tag.send_keys("some_text") 

但我想获得那些期权值(网页源代码):

<div class="form-select-container" > 
     <select multiple="multiple" class="django-select2" data-allow-clear="false" data-minimum-input-length="0" id="id_categories" name="categories"> 
     <option value="1">String1</option> 
     <option value="2">String2</option> 
     <option value="3">String3</option> 
</select> 
</div> 

然后选择一个随机值。从Chrome的控制台

for i in tag: 
    print len(i) 
    #print (random.choice(i))(Keys.ENTER) 

而这种代码::

我的代码它不工作,它甚至不打印元件的数量 Chrome Code

回答

0

通过定位选择元素id,实例化Select object,得到.options和随机挑选使用random.choice()之一:

import random 

from selenium.webdriver.support.select import Select 

# get a random option 
select_elm = driver.find_element_by_id("id_categories") 
select = Select(select_elm) 
random_option = random.choice(select.options) 

# select the random option 
select_elm.click() 
random_option.click() 
+0

我得到:AttributeError:选择实例没有属性'点击' –

+0

@MaciejJanuszewski肯定,更新。 – alecxe

+0

嗯......接下来的问题是:消息:元素不可见 –