【问题标题】:Checking If Attribute Exists In Any Of Html Tags Selenium Python检查任何 Html 标签中是否存在属性 Selenium Python
【发布时间】:2021-06-20 07:00:29
【问题描述】:
我想检查是否有任何 html 标签具有 <style> 属性,例如 <a style = ..> 或 <h1 style = ...> 或 <div style = ..> 等。
我使用了下面的代码,但它无法运行:
driver = webdriver.Chrome(web_driver_address, options=op)
driver.get(url)
elems = driver.find_elements_by_xpath("[@style]")
我该如何解决这个问题?
【问题讨论】:
标签:
python
selenium
webdriver
【解决方案1】:
您的 XPath 缺少元素标记名称。
在您的情况下,它可以是任何标签名称,但它仍然应该作为语法的一部分存在,因此您应该在那里使用 * 就像 any 一样。
此外,您缺少 //,这意味着该元素可以位于页面上的任何位置。
所以正确的 XPath 表达式应该是这样的:
elems = driver.find_elements_by_xpath("//*[@style]")
不要忘记添加一些等待/延迟,让页面在获取所有元素之前加载它们
【解决方案2】:
xpath 需要标签有效。如果您不想要特定标签,请使用*
find_elements_by_xpath("//*[@style]")
或者css_selector
find_elements_by_css_selector("[style]")