如果想查找某个元素内所有匹配以arch__main__开头的元素,可以选择正则表达式这种方式。
先获取该元素下的所有元素信息,并转换成字符串:element.get_attribute('innerHTML').encode('utf-8')
或者通过driver.page_source()的方式获取整个页面的元素信息。
import re
@staticmethod
def regular(pattern, element):
pattern = r'' + pattern + '(?:[a-zA-Z]|[0-9]|[*&_\-])+'
pat = re.compile(pattern)
pat = pat.findall(element.get_attribute('innerHTML').encode('utf-8'))
if pat:
return pat[0]
使用正则匹配的方式,例子中匹配规则pattern = r'' + pattern + '(?:[a-zA-Z]|[0-9]|[*&_\-])+',调用该方法匹配dialog中以'div.arch__main__'开头的元素
dialog = driver.find_element_by_css_selector('div.dialog')
arch_main = regular('arch__main__', dialog)
if arch_main:
c_type = dialog.find_element_by_css_selector('div.' + arch_main)
上面只是举个例子,正则表达式匹配可以有很多中形式匹配子串。具体规格可以自行在网上搜索。