Selenium:如何单击 html 元素的第一个 child
Selenium : how to click on the first child of a html element
我正在做一个 Selenium 项目,我需要点击 xpath 得到的这个 ul 的第一个 child:
bot.find_element_by_xpath('//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul').click()
你能帮帮我吗?
您可以使用 XPATH 单击第一个列表项
bot.find_element_by_xpath('//[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li[1]').click()
如果想点击第二个三分之一等等只需更改/li[number you want]
识别<ul>
元素的第一个child:
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul
您必须使用 tag_name
and/or child/descendant 元素的属性。
如果第一个 child(后代)是 <li>
,您必须在末尾附加 /li
,如下所示:
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li
如果第一个 child(后代)是 <ol>
,您必须在末尾附加 /ol
,如下所示::
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/ol
现在,要单击需要为 element_to_be_clickable()
引入 的元素,您可以使用以下任一 定位器策略 :
//in case of descendant li
WebDriverWait(bot, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li"))).click()
//in case of descendant ol
WebDriverWait(bot, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/ol"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我正在做一个 Selenium 项目,我需要点击 xpath 得到的这个 ul 的第一个 child:
bot.find_element_by_xpath('//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul').click()
你能帮帮我吗?
您可以使用 XPATH 单击第一个列表项
bot.find_element_by_xpath('//[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li[1]').click()
如果想点击第二个三分之一等等只需更改/li[number you want]
识别<ul>
元素的第一个child:
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul
您必须使用 tag_name
and/or child/descendant 元素的属性。
如果第一个 child(后代)是 <li>
,您必须在末尾附加 /li
,如下所示:
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li
如果第一个 child(后代)是 <ol>
,您必须在末尾附加 /ol
,如下所示::
//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/ol
现在,要单击需要为 element_to_be_clickable()
引入
//in case of descendant li
WebDriverWait(bot, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/li"))).click()
//in case of descendant ol
WebDriverWait(bot, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id="mailappcomponent"]/div/div/div[2]/div/div/div[2]/div/div[1]/ul/ol"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC