1

ドロップダウンメニューセレン中 - Pythonの3私はこのようになりますHTMLのためにセレンを使用して、ドロップダウンメニューにアクセスしようとしています

私は成功せず、次の試してみました
<span class="k-pager-sizes k-label"> 
<span title="" class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="8e90d557-7e8d-4c5c-b906-202fd78c6d0a"><span unselectable="on" class="k-dropdown-wrap k-state-default"> 
<span unselectable="on" class="k-input">20</span><span unselectable="on" class="k-select"> 
<span unselectable="on" class="k-icon k-i-arrow-s">select</span> 
</span> 
</span> 
<select data-role="dropdownlist" style="display: none;"> 
<option value="10">10</option><option value="15">15</option> 
<option value="20">20</option><option value="50">50</option> 
<option value="100">100</option> 
</select> 
<span>items per page</span> 

try: 
    driver = webdriver.Chrome('/Users/opusandcaymus/Election/chromedriver') 
    driver.get('http://mcad-tx.org/Property-Search-Result?searchtext=Maple%20Branch') 
    #dropdown=driver.find_element_by_xpath('//*[@id="grid"]/div[3]/span[2]/span/select') 
    #select = Select(dropdown) 
    dropdown = driver.find_elements_by_tag_name("option") 
    for row in dropdown: 
     print(row.value) 
    driver.close() 
except: 
    print("error") 
    driver.close() 
    raise 

ん値でオプションを見つける方法を知っている人は誰ですか?私はページが開かれるたびに100を選択したい。

element=driver.find_element_by_xpath("//select[@data-role='dropdownlist']") 
driver.execute_script("arguments[0].setAttribute('style', 'display: block;')",element) 
select = Select(element) 
select.select_by_value("100") 

そして、他の方法はExplicitwait まずクリックを使用している。そのため、私が最初に提案し、その値にコードの下

使用を選択javascriptexecuterを使用して、それが見えるようになりよう

答えて

1

あなたの選択ドロップダウンが隠されています下矢印とドロップダウンで値をクリック100

Pythonで次のようなコード:

from selenium.webdriver.support import expected_conditions as EC 

wait = WebDriverWait(driver, 10) 
element = wait.until(EC.visibility_of_element_located((By.XPATH, ".//*[@id='grid']/div[3]/span[2]/span/span/span[2]/span"))) 
element.click 

element = wait.until(EC.visibility_of_element_located((By.XPATH, ".//ul[@data-role='staticlist']/li[5]"))) 
element.click 

注:pythonの構文に従って修正してください。

+1

完璧です。両方の答えに感謝します。私はまだPythonからSeleniumでJavaScriptを使う方法を学んでいます。非常に役立ちます。 –

関連する問題