如何使用 Python Selenium 选择具有相同类名但不同条件的第一个 div

问题描述 投票:0回答:1

Python Selenium 的新手,我想选择第三个:

<div class = "inner-TPBYkbxL" ...> 

来自以下 3

<div>
具有相同班级名称的班级。不知道是什么意思

<... "data-is-fake-main-panel" =  "true" or "false"> 

之后

<div class = "inner-TPBYkbxL" ...>

快照:

Div Class Structure

我应该如何构建我的 selenium 网络驱动程序脚本? 我试过以下:

driver.find_element_by_xpath("//div[@class='inner-TPBYkbxL']").click()

但它返回:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
python selenium-webdriver xpath css-selectors selenium-webdriver-python
1个回答
0
投票

通常

<div>
元素不可交互,除非有一些例外情况。因此,当您在
click()
元素上调用
<div>
时:

driver.find_element_by_xpath("//div[@class='inner-TPBYkbxL']")

你面对的是:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

这个用例

不是很清楚为什么你会点击一个

<div>
元素。但是要识别元素:

<div class = "inner-TPBYkbxL" data-is-fake-main-panel="false"> 

您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

    element = driver.find_element(By.CSS_SELECTOR, "div,inner-TPBYkbxL[data-is-fake-main-panel='false']")
    
  • 使用XPATH

    element = driver.find_element(By.XPATH, "//div[@class='inner-TPBYkbxL' and @data-is-fake-main-panel='false']")
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.common.by import By
    
© www.soinside.com 2019 - 2024. All rights reserved.