2017-04-13 74 views
1

所以基本上我在做网页抓取/网站自动化ID,python3 /硒/自动化 - 查找包含给定的字符串

这里是什么,我试图做一个简单的例子:

我我正在一个包含表单的动态页面上工作,并且我想在这个表单中插入数据。

当然,这个动态页面会根据我在此页面上插入的内容而变化。下面是其中我试图在插入数据5个不同的网页的输入域ID的示例因此是自动生成的,以及独特的:

  1. Listing.Item [象棋尺寸]
  2. 清单.Item [鞋类尺寸]
  3. Listing.Item [尺寸熨]
  4. Listing.Item [尺寸]
  5. Listing.Item [鞋类尺寸]

同样的模式是字符串 '尺寸' 在这里。

我需要在这个字段中插入数据,否则,我不能前进的形式。所以这是我的尝试:

driver.find_element_by_id('Listing.Item[' + any(str) + 'Size' + any(str) + ']') 

但它不起作用。也许我错误地使用了函数'any()'。

如何自动找到在每一页我碰到过,总是包含在其ID字符串“尺寸”这一独特的输入?

的XPath & CSS选择器还包含其他字(在这个例子:国际象棋,擦鞋,及裤子),所以我不能够不使用它们

感谢您的帮助

编辑:

这里是整个相应的HTML:

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

=>每次更改名称和ID的值

回答

1

您可能想要尝试的是find_elements_by_css_selector。这个函数接受(顾名思义)css选择器来返回元素。

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

例如,如果你正在寻找的是有包含单词“大小”标识的所有输入标签,你会使用:

css_selector = 'input[id*=Size]' 
driver.find_elements_by_css_selector(css_selector) 

*=意味着“包含”。

这里有一些资源可能对您有用:

Selenium CSS Selectors

Another question similar to this

Nice compilation of CSS selectors

相关问题