Reputation: 141
<div class="panel-menu-container dropdown open">
<ul class="dropdown-menu dropdown-menu--menu panel-menu" role="menu">
<li>
<a>
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
<span class="dropdown-item-text" aria-label="Panel header item View">View</span>
<span class="dropdown-menu-item-shortcut">
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
v
</span>
</a>
</li>
<li>
<a>
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
<span class="dropdown-item-text" aria-label="Panel header item Share">Share</span>
<span class="dropdown-menu-item-shortcut">
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
p s
</span>
</a>
</li>
<li class="dropdown-submenu pull-right">
<a>
<div class="css-wf08df-Icon">
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
<span class="dropdown-item-text" aria-label="Panel header item Inspect">
Inspect
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-sys05s"></svg>
</div>
</span>
<span class="dropdown-menu-item-shortcut">
<div class="css-wf08df-Icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" class="css-uasfgx"></svg>
</div>
i
</span>
</a>
<ul class="dropdown-menu dropdown-menu--menu panel-menu" role="">
<li><a><span class="dropdown-item-text" aria-label="Panel header item Data">Data</span></a></li>
<li><a><span class="dropdown-item-text" aria-label="Panel header item Panel JSON">Panel JSON</span></a></li>
</ul>
</li>
</ul>
</div>
I want to click on Data as shown in the pic . The HTML code above contains the code for this list.
I am not able to search/find main menu by using :
driver.find_element(By.CLASS_NAME,"panel-menu-container dropdown open")
and getting error Kindly help me out.
def scrape_data():
DRIVER_PATH = r"C:\chrome\chromedriver.exe"
driver = webdriver.Chrome(DRIVER_PATH)
driver.get('Link to the dashboard')
time.sleep(20)
driver.find_element(By.XPATH,"//div[@class='panel-menu-container dropdown open']")
Upvotes: 1
Views: 51
Reputation: 33361
In case you want to click the parent div
element with class name values panel-menu-container dropdown open
this can be done with following XPath or CSS Selector.
It should not be done by CLASS_NAME
since CLASS_NAME
accepts single class name value while this element contains 3 class name values: panel-menu-container
dropdown
open
So, with CSS Selector:
driver.find_element(By.CSS_SELECTOR,".panel-menu-container.dropdown.open")
Or
driver.find_element(By.CSS_SELECTOR,"div.panel-menu-container.dropdown.open")
With XPath:
driver.find_element(By.XPATH,"//*[@class='panel-menu-container dropdown open']")
Or
driver.find_element(By.XPATH,"//div[@class='panel-menu-container dropdown open']")
In case you want to click the Data
option this XPath should work:
driver.find_element(By.XPATH,"//span[contains(text(),'Data')]")
In case you prefer CSS Selectors - this can also be done by CSS Selector:
driver.find_element(By.CSS_SELECTOR,"[aria-label='Panel header item Data']")
Or
driver.find_element(By.CSS_SELECTOR,"span[aria-label='Panel header item Data']")
Upvotes: 1