在Python Selenium中选择不同ID的多个下拉菜单。

问题描述 投票:0回答:1

我试图填写一个表格,其中有一个下拉菜单,每个订单号。

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

我使用什么路径来选择具有不同名称的多个元素,以便我可以通过它们迭代选择我的选项。

python selenium select xpath css-selectors
1个回答
1
投票

使用 contains 功能。

elements = driver.find_elements_by_xpath("//select[contains(@name, 'order') and contains(@name, 'shippingmethod')]")

0
投票

识别 <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')]")
    
© www.soinside.com 2019 - 2024. All rights reserved.