我需要将所有的值从下拉菜单导入到GUI的combobox中。你知道吗
之后,我需要通过点击组合框来选择一个值。你知道吗
但没有起作用。 请帮助我从下拉列表中选择一个值。 如何获取下拉列表中所有可用的文本值?你知道吗
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from PyQt5.QtWidgets import QApplication
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.common.keys import Keys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon, QPixmap
import time
import os
def first(self):
url = 'https://www....aspx'
driver = webdriver.Chrome(executable_path="chromedriver.exe")
driver.get(url)
s1 = Select(driver.find_element_by_id('select2-ctl00_PlaceHolderMain_oDistributionUC_ddlClass-container'))
all_options = s1.options
for options in all_options:
self.comboBoxClass.addItem(options.text)
print(options.text)
self.comboBoxClass.activated.connect(self.loading_2)
def loading_2(self):
s1.select_by_visible_text(str(self.comboBoxClass.currentText()))
HTML代码:
<div id="ctl00_PlaceHolderMain_oDistributionUC_oClassUpdatePanel">
<div id="ctl00_PlaceHolderMain_oDistributionUC_trEmptyRow" class="col-xs-12 no_padding">
<div class="col-xs-5 col-sm-4">
<span class="manditory"></span>
</div>
<div class="col-xs-7 col-sm-8 feild_data">
</div>
</div>
<div id="ctl00_PlaceHolderMain_oDistributionUC_trClass" class="col-xs-12 no_padding">
<div class="col-xs-5 col-sm-4 feild_title divDistributionSearchTitle">
<span id="ctl00_PlaceHolderMain_oDistributionUC_tdStar04" class="manditory">*</span>
<span id="ctl00_PlaceHolderMain_oDistributionUC_lblClass" class="StandardFont" style="display:inline-block;width:120px;">class</span>
</div>
<div class="col-xs-7 col-sm-8 feild_data divDistributionSearchData">
<select name="ctl00$PlaceHolderMain$oDistributionUC$ddlClass" onchange="javascript:setTimeout('__doPostBack(\'ctl00$PlaceHolderMain$oDistributionUC$ddlClass\',\'\')', 0)" id="ctl00_PlaceHolderMain_oDistributionUC_ddlClass" class="control-dropdownlist" style="width:100%;">
<option selected="selected" value="-99">-- chose --</option>
<option value="1,1">good1 </option>
<option value="2,1">good2 </option>
<option value="3,1">good3 </option>
<option value="4,1">good4 </option>
<option value="5,1">good5 </option>
<option value="6,1">good6 </option>
</select>
<div id="ctl00_PlaceHolderMain_oDistributionUC_tdValidatorClass">
<div id="ctl00_PlaceHolderMain_oDistributionUC_oUpdatePanelrfvClass">
<span id="ctl00_PlaceHolderMain_oDistributionUC_rfvClass" class="ValidationClass" style="display:inline-block;width:100px;display:none;"> chose class.</span>
像good1,good2,good3,。。。你知道吗
更新:
谢谢NitishKshirsagar 现在正在工作:
drop_down = driver.find_element_by_css_selector('#ctl00_PlaceHolderMain_oDistributionUC_trClass .divDistributionSearchData')
ActionChains(driver).move_to_element(drop_down).perform()
drop_down.click()
drop_down = driver.switch_to.active_element
element = driver.find_element_by_css_selector("#ctl00_PlaceHolderMain_oDistributionUC_trClass .divDistributionSearchData select")
all_options = element.find_elements_by_tag_name("option")
for option in all_options:
print(option.text)
由于下拉列表不是Select类型,因此不能在此下拉列表上使用Select方法。您需要使用xpath单击元素。 你可以这样做:
相关问题 更多 >
编程相关推荐