Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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 如何在selenium中找到具有相同类的元素的位置_Python_Html_Selenium - Fatal编程技术网

Python 如何在selenium中找到具有相同类的元素的位置

Python 如何在selenium中找到具有相同类的元素的位置,python,html,selenium,Python,Html,Selenium,我正在制作一个简单的程序,打开Google Keep并制作一个新的列表。我遇到的问题是列表项在html中都具有相同的类,因此当程序运行时,它不会在列表中创建新项,而是将其全部作为一个项键入 我曾经尝试过使用xpath,但说实话,我很难理解这个概念,而且试图解决这个问题也是遥不可及的 以下是程序特定部分的代码: listItem=driver.find_element_by_css_选择器('div.notranslate.IZ65Hb YPqjbf.fmcmS-x3Eknd.CmABtb YPq

我正在制作一个简单的程序,打开Google Keep并制作一个新的列表。我遇到的问题是列表项在html中都具有相同的类,因此当程序运行时,它不会在列表中创建新项,而是将其全部作为一个项键入

我曾经尝试过使用xpath,但说实话,我很难理解这个概念,而且试图解决这个问题也是遥不可及的

以下是程序特定部分的代码:

listItem=driver.find_element_by_css_选择器('div.notranslate.IZ65Hb YPqjbf.fmcmS-x3Eknd.CmABtb YPqjbf'))
listItem.send_key('COM 305-DB(初始Post)'))
listItem.send_键(key.ENTER)
listItem.send_key('COM 305-DB(回复)'))
listItem.send_键(key.ENTER)
listItem.send_keys('PHI 315-DB(初始Post)')
listItem.send_键(key.ENTER)
程序应该创建一个新的列表项,而不是将其全部放在一行中。我想从文档中我了解到find_元素函数可以从HTML中找到第一个可用的元素,所以我假设这就是为什么它一直将它放在一个项目中


有没有办法把它们分开?

如果有人好奇,我确实找到了解决办法。我必须从listItem驱动程序中实现一个自动化操作。以下是有效的代码:

listItem.send_keys('COM 305-DB(初始Post)),keys.ENTER,
“COM 305-DB(回复)”,Keys.ENTER,
“PHI 315-DB(初始Post)”,键.ENTER,
“PHI 315-DB(回复)”,key.ENTER,
“第235节-DB(初始Post)”,key.ENTER,
“第235节-争议裁决委员会(答复)”
我认为,每当调用驱动程序时,它都会从列表的顶部开始,在那里它可以找到找到的第一个类,因此总是打印在第一行。
不知道是否有人在乎,但我想我会把它贴出来

每个
find\u element\u
方法都有相应的
find\u elements\u
方法,该方法将返回一个webelements列表。为了好玩,请在enter键后添加睡眠(1-5秒)。看看这是否能满足你的需求。如果确实如此,那么您可以添加一些等待(比睡眠更好)。如果没有,则enter键不会触发javascript操作以创建新条目,因此您需要以渐进方式触发该事件或重新考虑您的方法。此外,查找元素以查找“input”框也可以。在这种情况下,不需要查找元素。您的方法是正确的,尽管类定位器将是脆弱的。谢谢!我试过使用睡眠,我可能应该提到这一点。我想我会研究javascript的!