使用Python Selenium,如何单击webElement中的webElement?

使用Python Selenium,如何单击webElement中的webElement?,python,html,selenium,Python,Html,Selenium,我已经了解了如何在python中使用Selenium,通过这个堆栈溢出帖子找到元素的子元素 我想更进一步。我希望能够对子元素执行操作。与前面的示例不同: <div class='wrapper'> <div class='insider1'> <div class='insider2'> <div class='wrapper'> <div class='insider1'> <div class='inside

我已经了解了如何在python中使用Selenium,通过这个堆栈溢出帖子找到元素的子元素

我想更进一步。我希望能够对子元素执行操作。与前面的示例不同:

<div class='wrapper'>
  <div class='insider1'>
  <div class='insider2'>
<div class='wrapper'>
  <div class='insider1'>
  <div class='insider2'>
是的,在这个例子中我可以只做sub_element.click(),但我想做更多类型的交互


示例as找不到元素子元素。如果我将
ActionChains(element)
而不是
ActionChains(driver)
,则代码会抛出错误,因为element是webElement而不是webDriver。

首先,您必须关闭html标记:

<div class='wrapper'>
  <div class='insider1'></div>
  <div class='insider2'></div>
</div>
<div class='wrapper'>
  <div class='insider1'></div>
  <div class='insider2'></div>
</div>
您可以使用以下命令指定外部div的类:

'//div[@class="wrapper"]'
这样,您就不会像我认为的那样意外地选择内部代码。然后选择外部div的所有子元素:

'./child::div'

你在关闭标签上是对的。我应该抓住那个。我认为我的重点是在确定内部元素后执行操作,比如单击所选元素。您在查找内部元素方面做得很好,但上一篇StackOverflow文章(超链接)已经介绍了这一点。我需要进一步的帮助。您是否尝试过将父元素放入move_to_元素中,如下所示:ActionChains(driver)。move_to_元素(element)。click(sub_元素)。perform()我刚刚尝试了
ActionChains(driver)。move_to_元素(element)。click(sub_元素)。perform()
但我得到的错误是
(JavascriptException)消息:javascript错误:未能对“文档”执行“elementsFromPoint”:提供的双精度值是非有限的
我认为错误在于xpath不确定。因此,您使用的xpath不是只指向一个元素,而是指向多个元素。尝试确认xpath只指向一个元素。并尝试设置一个等待条件:time.sleep(3)。函数
find_element_by_xpath
只返回匹配元素的第一个匹配项。所以我不确定这是个问题。即使网站已完全加载,也会出现错误。但这些都是很好的建议。
'//div[@class="wrapper"]'
'./child::div'