我试图填写一个表格,其中有一个下拉菜单,每个订单号。
<select name="order(889673519).box(1).shippingmethod" onclick="" onchange=""
id="order(889673519).box(1).shippingmethod"><option value=""
id="order(889673519).box(1).shippingmethod.blank"></option>
对于每个下拉菜单,名称css选择器内的数字会改变,所以第一个是889673519,但第二个会是
<select name="order(889711159).box(1).shippingmethod" onclick="" onchange=""
id="order(889711159).box(1).shippingmethod"><option value=""
id="order(889711159).box(1).shippingmethod.blank"></option>
我使用什么路径来选择具有不同名称的多个元素,以便我可以通过它们迭代选择我的选项。
使用 contains
功能。
elements = driver.find_elements_by_xpath("//select[contains(@name, 'order') and contains(@name, 'shippingmethod')]")
识别 <select>
节点,使用以下方式 定位策略:
使用 css_selector
和 身份证 属性。
elems = driver.find_elements_by_css_selector("select[id^='order'][id*='box'][id$='shippingmethod']")
使用 css_selector
和 名称 属性。
elems = driver.find_elements_by_css_selector("select[name^='order'][name*='box'][name$='shippingmethod']")
使用 xpath
和 名称 身份证 属性。
elems = driver.find_elements_by_xpath("//select[starts-with(@name, 'order') and contains(@id, 'shippingmethod')]")