基本上我正在进行网络抓取/网站自动化,
以下是我正在尝试做的一个简单示例:
我正在处理一个包含表单的动态页面,我想以这种形式插入数据。
当然,这个动态页面会根据我在此页面上发生的内容而改变。这是我尝试插入数据的5个不同页面的输入字段ID的示例。因此它是自动生成的,并且是唯一的:
相同的模式是字符串'Size'。
我需要在此字段中插入数据,否则,我无法在表单上继续前进。所以这就是我的尝试:
driver.find_element_by_id('Listing.Item[' + any(str) + 'Size' + any(str) + ']')
但它不起作用。也许我错误地使用'any()'函数。
如何在我遇到的每个页面中自动找到此唯一输入,其ID中始终包含字符串'Size'?
XPath& CSS Selector还包含另一个单词(对于此示例:Chess,Shoe和Trouser),因此我无法使用它们
感谢您的帮助
编辑:
以下是完整的相应HTML:
<input type="text" id="Listing.Item[Shoe Size]"
name="_st_Shoe Size" size="21" maxlength="50"
aria-required="true" value="">
=&GT;每次更改名称和ID的值
答案 0 :(得分:1)
您可能想要尝试的是find_elements_by_css_selector
。该函数接受(顾名思义)css选择器来返回元素。
CSS选择器允许您搜索包含特定值的ID。
例如,如果您要搜索包含“大小”一词的所有输入标记,则使用:
css_selector = 'input[id*=Size]'
driver.find_elements_by_css_selector(css_selector)
*=
表示“包含”。
以下是您可能会发现有用的一些资源: