Python 尝试单击网页中的所有HTML元素
我使用Selenium和Beauty Soup在一个网页中单击并展开所有切换元素。我的代码看起来像这样Python 尝试单击网页中的所有HTML元素,python,python-3.x,Python,Python 3.x,我使用Selenium和Beauty Soup在一个网页中单击并展开所有切换元素。我的代码看起来像这样 from selenium import webdriver import os chromedriver = "C:\Users\rs\Downloads\chromedriver" os.environ["webdriver.chrome.driver"] = chromedriver driver = webdriver.Chrome(chromedriver) url='http://
from selenium import webdriver
import os
chromedriver = "C:\Users\rs\Downloads\chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
url='http://www.coprporate-site.com'
driver.get(url)
driver.find_element_by_class_name('next').click()
我猜应该是这样的。默认情况下,项目如下所示:
<pan-icon class="a6z-dynamic-tree-node-toggle a6z-dynamic-tree-node-toggle-collapsed" size="treeCtrl.nodeArrowIconSize" icon="sort-descending" role="button"> </pan-icon>
from selenium import webdriver
import os
chromedriver = "C:\Users\rs\Downloads\chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
url='http://www.coprporate-site.com'
driver.get(url)
for element in driver.find_elements_by_class_name('a6z-dynamic-tree-node-toggle-collapsed'):
element.click()
每个对象旁边都有一个小三角形。我试图循环浏览所有处于“切换折叠”状态的项目,并将每个项目更改为“切换”。我认为代码应该如下所示
<pan-icon class="a6z-dynamic-tree-node-toggle" size="treeCtrl.nodeArrowIconSize" icon="sort-descending" role="button"> </pan-icon>
我如何循环使用所有这些特定的HTML元素(如上所述),并将每个元素从“toggle collapsed”更改为“toggle”?TIA.Selenium的WebDriver包有几个允许您获取DOM中所有元素的组件。其中一种方法是通过类名称查找元素。循环遍历每个元素并将其展开,理想情况下,就像人类用户通过单击所做的那样。因此,您的代码可能如下所示:
<pan-icon class="a6z-dynamic-tree-node-toggle a6z-dynamic-tree-node-toggle-collapsed" size="treeCtrl.nodeArrowIconSize" icon="sort-descending" role="button"> </pan-icon>
from selenium import webdriver
import os
chromedriver = "C:\Users\rs\Downloads\chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
url='http://www.coprporate-site.com'
driver.get(url)
for element in driver.find_elements_by_class_name('a6z-dynamic-tree-node-toggle-collapsed'):
element.click()
如果需要检查类名本身是否包含“toggle collapsed”子字符串,可以在xpath中使用find_elements_by_xpath和contains属性,例如
for element in driver.find_elements_by_xpath(r"\\*[contains(@class, 'toggle-collapsed')]"):
element.click()