python3/selenium/automation-查找包含给定字符串的ID

python3/selenium/automation-查找包含给定字符串的ID,python,selenium,automation,beautifulsoup,Python,Selenium,Automation,Beautifulsoup,所以基本上我在做网页抓取/网站自动化 下面是一个简单的例子,说明我正在尝试做什么: 我正在处理一个包含表单的动态页面,我想在此表单中插入数据 当然,这个动态页面的变化取决于我在此页面上插入的内容。这里有一个输入字段ID的例子,我正在尝试将数据插入其中的5个不同页面。因此,它是自动生成的,并且是唯一的: 列表.项目[国际象棋大小] 清单.项目[鞋尺寸] 物品[尺码裤子] 列表.项目[大小] 清单.项目[鞋尺寸] 这里的字符串“Size”也是相同的模式 我需要在此字段中插入数据,否则,我无法在表单上

所以基本上我在做网页抓取/网站自动化

下面是一个简单的例子,说明我正在尝试做什么:

我正在处理一个包含表单的动态页面,我想在此表单中插入数据

当然,这个动态页面的变化取决于我在此页面上插入的内容。这里有一个输入字段ID的例子,我正在尝试将数据插入其中的5个不同页面。因此,它是自动生成的,并且是唯一的:

  • 列表.项目[国际象棋大小]
  • 清单.项目[鞋尺寸]
  • 物品[尺码裤子]
  • 列表.项目[大小]
  • 清单.项目[鞋尺寸]
  • 这里的字符串“Size”也是相同的模式

    我需要在此字段中插入数据,否则,我无法在表单上前进。下面是我试过的:

    driver.find_element_by_id('Listing.Item[' + any(str) + 'Size' + any(str) + ']')
    
    但它不起作用。可能我错误地使用了函数“any()”

    如何在我遇到的每个页面中自动找到这个唯一的输入,而这些页面的ID中总是包含字符串“Size”?

    XPath&CSS选择器还包含另一个单词(例如:Chess、Shoe和sloaser),因此我不能使用它们

    谢谢你的帮助

    编辑:

    下面是所有相应的HTML:

     <input type="text" id="Listing.Item[Shoe Size]"
     name="_st_Shoe Size" size="21" maxlength="50"
     aria-required="true" value="">
    
    
    

    =>name和id的值每次都会更改

    您可能想要尝试的是通过css\u选择器查找元素。此函数接受(顾名思义)css选择器以返回元素

    CSS选择器允许您搜索包含特定值的ID

    例如,如果要搜索id中包含单词“Size”的所有输入标记,则应使用:

    css_selector = 'input[id*=Size]'
    driver.find_elements_by_css_selector(css_selector)
    
    *=
    表示“包含”

    以下是一些您可能会觉得有用的资源: