我有这个HTML:
<body>
<p id='one'> 1A </p>
<p id='two'> 2A </p>
<p id='three'> 3A </p>
<p id='four'> 4A </p>
<p id='five'> 5A </p>
<p id='six'> 6A </p>
<p id='seven'> 7A </p>
</body>
我使用下面的代码获取第一个p
标记元素:
elem = driver.find_element_by_id('one')
现在,如何找到elem
的下一个兄弟?
答案 0 :(得分:13)
我想纠正Mark Rowlands的答案。正确的语法是
driver.find_element_by_xpath("//p[@id='one']/following-sibling::p")
答案 1 :(得分:6)
使用Xpath:
driver.find_element_by_xpath("//p[@id, 'one']/following-sibling::p")
答案 2 :(得分:1)
我们需要将elem
传递给JavaScript函数并执行它。将elem
传递给JS函数时,不能在JS函数中使用它的名称,但可以使用arguments
。这是一个如何获取elem
的下一个兄弟的示例:
next_sibling = driver.execute_script("""
return arguments[0].nextElementSibling
""", elem)
看看这个execute_script()
函数如何工作的小例子:
sum = driver.execute_script("""
console.log(arguments[0].innerHTML) // will print innerHTML of the element in console logs of the page
return arguments[1] + arguments[2]
""", elem, 5, 6)
print(sum) # 11