Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用双下划线按类名查找元素_Python_Selenium - Fatal编程技术网

Python 使用双下划线按类名查找元素

Python 使用双下划线按类名查找元素,python,selenium,Python,Selenium,我尝试按类名查找元素。不幸的是,我必须选择的类名包含双下划线,并引发了“no-this-element”错误 div元素选择: <div class="result-list-entry__data"> ... </div> 当前结果(错误): selenium.common.exceptions.NoSuchElementException:消息:无此类 元素:找不到元素:{“方法”:“css” 选择器“,”选择器“:”.result-list-entry\uu da

我尝试按类名查找元素。不幸的是,我必须选择的类名包含双下划线,并引发了“no-this-element”错误

div元素
选择:

<div class="result-list-entry__data">
...
</div>
当前结果(错误):

selenium.common.exceptions.NoSuchElementException:消息:无此类 元素:找不到元素:{“方法”:“css” 选择器“,”选择器“:”.result-list-entry\uu data“}(会话信息: 铬=77.0.3865.90)


是否可以转义双下划线?

也许可以在选择器中使用contains查询。试着这样做:

last_named_class = result.find_element_by_xpath("//div[contains(@class, 'result-list')]")

希望这能有所帮助。

首先,检查是否有iFrame。如果该元素位于iframe中,则在使用该元素执行任何操作之前,必须切换到该帧

您可以使用类属性上的部分字符串匹配来定位此元素,类似于

last_named_class = result.find_element_by_xpath("//*[contains(@class,'result-list-entry')]")

您可以尝试使用class=“result-list-entry\uu data”获取所有元素的列表

如果DOM中有多个类,请根据位置迭代elementResult数组

 elementResult=[];
 elementResult = driver.find_elements_by_class_name("result-list-entry__data");
否则


您可以使用前面建议的方法,包括以下两个方面:

last_named_class = result.find_element_by_xpath("//div[contains(@class, 'result-list') and contains(@class, 'data')]"
试试下面的东西

  • 应用所需等待(隐式或显式等待)
  • 驱动程序。隐式等待(15)
    
  • 检查元素是否是iframe元素的子元素。如果是,请切换到iframe并尝试单击

  • 如果元素属性值经常更改,请将xpath与contains一起使用

  • last_named_class=result。通过_xpath(“/*[contains(@class,'result-list-entry')]”查找_元素
    
    我无法用您提供的信息重现您的问题。请提供一个。您好,有代码和错误消息很好,但请注意,寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中复制它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我可以保证双下划线不是问题所在。元素尚未加载,或者它位于iframe中。
    last_named_class = result.find_element_by_xpath("//div[contains(@class, 'result-list') and contains(@class, 'data')]"
    
    wait = WebDriverWait(driver, 10)
    wait.until(ec.visibility_of_element_located((By.XPATH, "//*[contains(@class,'result-list-entry')]")))