以下是孤立的HTML代码:
<span style="position: relative; width: 100%; display: inline-block;">
<select id="0ac88542d16d6200fb983d094f655c76_select" class="form-control">
<option value="display_value">Number</option>
<option value="sys_class_name">Type</option>
</select>
</span>
使用Python Selenium,单击下拉元素将其展开:
search_elemets = driver.find_elements_by_xpath("//*[@class='form-control']")
search_elemets[0].click()
现在让我们尝试不同的场景,将其选择更改为所需的值。
选项1
Select(search_elemets[0]) \
.select_by_visible_text("Number")
driver.find_elements_by_tag_name('option')[1].click()
选项2
Select(search_elemets[0]) \
.select_by_value("display_value")
driver.find_elements_by_tag_name('option')[1].send_keys(Keys.RETURN)
选项3
for option in search_elemets[0].find_elements_by_tag_name('option'):
if option.text == 'Number':
# Use one of the options below
# Option 3.1
Select(search_elemets[0]) \
.select_by_visible_text("Number")
option.click()
break
# Option 3.2
actions = ActionChains(driver)
actions.move_to_element(option)
actions.click(option)
actions.perform()
break
所有尝试都会导致由webdriver执行的可视化点击,但是 之后价值没有改变..
答案 0 :(得分:0)
班级form-control
可能会为您提供其他元素。尝试按部分ID
search_elemet = driver.find_element_by_css_selector('[id*="select"]')
Select(search_elemet).select_by_visible_text('Number')
# or
Select(search_elemet).select_by_value('display_value')
答案 1 :(得分:0)
@katericata你的html就像 - 数字类型Type2 Type3
和我的网络驱动程序类一样,在这里你可以将下拉项替换为你要选择的Type2,type 3等。
driver.findElement(By.xpath(&#34;代码&#39;]&#34))的SendKeys(&#34;类型3&#34)。如果有任何疑虑,请告诉我。
答案 2 :(得分:0)
执行此操作的正确方法是使用支持UI的“选择”选项。 e.g:
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox()
select_element = Select(driver.find_element_by_id("0ac88542d16d6200fb983d094f655c76_select"))
print [o.text for o in select_element.options] # these are string-s
select_element.select_by_visible_text("Type")
# or
select_element.select_by_value("display_value")
# or
select_element.select_by_index(1)
答案 3 :(得分:0)
let arr = [[121.09900,56.5999], [123.94949, 45.0099], [...] ]
let coordinates = arr.map { CLLocationCoordinate2D(latitude: $0[0], longitude: $0[1]) }