我正在创建一个允许用户通过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&dimType=crp2&fieldmain=main_py_six_qdns&idPS=1e1d6e7d7ec3368cf13a68fc523d1ed4870e8b45&idAS=0&idFS=0" name="fieldcrp2=ce_whe&dimType=crp2&fieldmain=main_py_six_qdns&idPS=1e1d6e7d7ec3368cf13a68fc523d1ed4870e8b45&idAS=0&idFS=0&_passChanged=true&_eventdim" value="Wheat" onclick="return wf_click(this);" type="submit" class="linksubmit linksubmitfalse" style="border: none;">
答案 0 :(得分:1)
我猜您可以使用input
方法选择find_element_by_css_selector
元素。由于css选择器允许,您可以访问元素的属性,因此在您的示例中,input
元素的Wheat
为value
属性:
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
例如。