我有两个下拉框“ A”和“ B”。当我在“ A”框内选择一个选项时,“ B”框内的选项会更改。因此,我必须等待几秒钟以刷新值。
这是“ B” HTML代码:
<select name="ctl00$body$ddpProjeto" onchange="javascript:setTimeout('__doPostBack(\'ctl00$body$ddpProjeto\',\'\')', 0)" id="body_ddpProjeto" class="form-control" required="required">
<option value="Sistema de Bombeamento de Água Gelada - 2019">Sistema de Bombeamento de Água Gelada - 2019</option>
<option value="Obras Civis no Nível Térreo do Forno RW25 - 2019">Obras Civis no Nível Térreo do Forno RW25 - 2019</option>
<option value="Fluxogramas de Utilidades RW25 - 2020">Fluxogramas de Utilidades RW25 - 2020</option>
<option value="Quadros Elétricos RW25 - 2020">Quadros Elétricos RW25 - 2020</option>
<option value="EMPLACAMENTO BALIZADAS FORNO RW25 - 2020">EMPLACAMENTO BALIZADAS FORNO RW25 - 2020</option>
<option value="OBRAS CIVIS NÍVEL TÉRREO FORNO RW25 - 2020 - 2020">OBRAS CIVIS NÍVEL TÉRREO FORNO RW25 - 2020 - 2020</option>
我正在尝试使用此代码:
def EDM_CRIA_DOCUMENTO(titulo, areafisica,classe,tipo="Desenhos de detalhamento (Drawing)",projeto="Quadros Elétricos RW25 - 2020"):
global driver
opt_af = Select(driver.find_element_by_name(r"ctl00$body$ddpAreaFisica")) #Acha a lista Area Fisica
opt_af.select_by_visible_text(areafisica)
wait = WebDriverWait(driver, 10)
wait.until(ec.text_to_be_present_in_element(By., projeto))
opt_proj = Select(driver.find_element_by_id("body_ddpProjeto")) #Acha a lista projeto
opt_proj.select_by_visible_text(projeto) # Seleciona na lista "Nome_do_Projeto"
但是我不知道如何在这种情况下设置“ WebDriverWait”。有人可以帮忙吗?
如果您选择了“ A”后在框“ B”中显示了一组特定的值,则可以对“ B”的任何元素应用等待,并且只要存在该元素,就可以对“ B”进行操作”。
您可以这样做:
def EDM_CRIA_DOCUMENTO(titulo, areafisica,classe,tipo="Desenhos de detalhamento (Drawing)",projeto="Quadros Elétricos RW25 - 2020"):
global driver
opt_af = Select(driver.find_element_by_name(r"ctl00$body$ddpAreaFisica")) #Acha a lista Area Fisica
opt_af.select_by_visible_text(areafisica)
# Wait for the first value in "B" to be present
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//option[contains(text(),'Sistema de Bombeamento de')]")))
# Now operate on the element
opt_proj = Select(driver.find_element_by_id("body_ddpProjeto")) #Acha a lista projeto
opt_proj.select_by_visible_text(projeto)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句