Python - 从Selenium的列表中选择一个选项

时间:2017-08-16 19:36:36

标签: python selenium

我正在创建一个允许用户通过Python与网站连接的功能。具体而言,将向用户提供要选择的选项列表,并且所选选项将单击相应的链接。我们假设这是我的代码:

crop = input('\n\nSelect a crop: Wheat, Wetland rice, Dryland rice, Maize, Barley, Sorghum, Rye, Pearl millet, '
             'Foxtail millet, Oat, Buckwheat, White potato, Sweet potato, Cassava, \n Yam and Cocoyam, Sugarcane, Sugarbeet,'
             ' Phaseolus bean, Chickpea, Cowpea, Dry pea, Gram, Pigeonpea, Soybean, Sunflower, Rapeseed, Groundnut, Oilpalm, '
             'Olive, Jatropha, \n Cabbage, Carrot, Onion, Tomato, Banana, Citrus, Coconut, Cocoa, Cotton, Flax, Coffee, Tea, '
             'Tobacco, Alfalfa, Pasture, Miscanthus, Switchgrass, Reed canary grass')

我如何编写下一个允许用户根据他或她的答案点击相应链接的功能?我使用哪个driver.find_element_by_代码?

我在考虑使用:

Select(driver.find_element_by_css_selector(crop).select_by_value(crop)

但它不起作用。

如果有帮助,这是小麦链接的代码:

<input id="buttonSubmit__dim_fieldcrp2=ce_whe&amp;dimType=crp2&amp;fieldmain=main_py_six_qdns&amp;idPS=1e1d6e7d7ec3368cf13a68fc523d1ed4870e8b45&amp;idAS=0&amp;idFS=0" name="fieldcrp2=ce_whe&amp;dimType=crp2&amp;fieldmain=main_py_six_qdns&amp;idPS=1e1d6e7d7ec3368cf13a68fc523d1ed4870e8b45&amp;idAS=0&amp;idFS=0&amp;_passChanged=true&amp;_eventdim" value="Wheat" onclick="return wf_click(this);" type="submit" class="linksubmit linksubmitfalse" style="border: none;">

1 个答案:

答案 0 :(得分:1)

我猜您可以使用input方法选择find_element_by_css_selector元素。由于css选择器允许,您可以访问元素的属性,因此在您的示例中,input元素的Wheatvalue属性:

elem = driver.find_element_by_css_selector("input[value=\"Wheat\"]")
elem.click()

如果您有许多具有该值的input个元素,您可以尝试通过先前选择您要定位的input的父元素或通过添加您的元素的类名来更加精确css选择器:

elem = driver.find_element_by_css_selector("input.linksubmit[value=\"Wheat\"]")
elem.click()

要使用用户输入的值,您可以使用字符串的format方法:

driver.find_element_by_css_selector('input[value="{}"]'.format(crop))

编辑:对于记录,Select(...) selenium类用于为具有select html标记的元素建模,之后允许select_by_value其中一个option例如。