python selenium-webdriver select option does not w

2019-02-27 21:52发布

问题:

The selection of Calgary in Canadian Cities list does not work, it will always return All cities in the search result after clicking search button pro grammatically. Here is my code:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Initialize
driver = webdriver.Firefox()
driver.get('https://sjobs.brassring.com/TGWebHost/searchopenings.aspx?partnerid=25222&siteid=5011')
# Select city name Calgary
calgaryOptionXpath = ".//*[@id='Question4138__FORMTEXT62']/option[37]"
calgaryOptionElement = WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_xpath(calgaryOptionXpath))
calgaryOptionElement.click()
# click submit button "Search"
driver.find_element_by_id('ctl00_MainContent_submit1').click()

Thanks in advance!

回答1:

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time

# Initialize
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get('https://sjobs.brassring.com/TGWebHost/searchopenings.aspx?partnerid=25222&siteid=5011')



# Select city name Calgary
text = "Calgary"  # what ever you want to select in dropdown
currentselection = driver.find_element_by_id("Question4138__FORMTEXT62")
select = Select(currentselection)
select.select_by_visible_text(text)

select.deselect_by_visible_text("All")

print("Selected Calgary by visible text")

driver.find_element_by_id('ctl00_MainContent_submit1').click()

Hope this helps