2016-10-13 94 views
1

在加拿大城市列表中選擇卡爾加里列表不起作用,它會在語法上單擊搜索按鈕後始終返回搜索結果中的所有城市。這裏是我的代碼:python selenium-webdriver select option does not work

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() 

在此先感謝!

回答

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() 

希望這有助於

+0

我測試了它,它的工作原理。謝謝先生,我給你買了一瓶啤酒。 – Dung

+0

@Dung - 當我運行你的代碼時,我總是得到卡爾加里。不知道你的情況是什麼問題。答案只是給出了代碼,而沒有告訴爲什麼錯誤發生在第一位。他將web元素轉換爲select,然後與之交互。 – testerjoe2

+0

@ testerjoe2嘗試我的代碼有問題,我使用了driver:element:click(),這不起作用,這就是爲什麼他說「通過可見文本選擇卡爾加里」,並且他使用了Select:select:select_by_visible_text並且工作正常! – Dung