Python 如何从列表中选择Selenium中的项目?
有一个列表项(li),您需要单击它。但这种情况是否会持续下去,目前尚不清楚 我和for id都试过了,而对于xpath和link中的文本,我都没有试过Python 如何从列表中选择Selenium中的项目?,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,有一个列表项(li),您需要单击它。但这种情况是否会持续下去,目前尚不清楚 我和for id都试过了,而对于xpath和link中的文本,我都没有试过 <li id="l_pr" class=""><a href="https://vk.com/32444224224" onclick="return nav.go(this, event, {noback: true, params: {_ref: 'left_nav'}});" class="left_row">
<li id="l_pr" class=""><a href="https://vk.com/32444224224" onclick="return nav.go(this, event, {noback: true, params: {_ref: 'left_nav'}});" class="left_row">
<span class="left_fixer">
<span class="left_count_wrap fl_r left_void"><span class="inl_bl left_count_sign">0</span></span>
<span class="left_icon fl_l"></span>
<span class="left_label inl_bl">My page</span>
</span>
</a>
<div class="left_settings" onclick="menuSettings(0)">
<div class="left_settings_inner"></div>
</div>
</li>
我希望单击我的页面链接请检查是否存在iframe,在这种情况下,您必须在单击元素之前切换到框架。如果没有iframe,那么单击该元素看起来很简单。 试试这个xpath
driver.find_element_by_xpath("//span[contains(.,'My page')]/parent::a").click()
请检查是否存在iframe,在这种情况下,您必须在单击元素之前切换到该帧。如果没有iframe,那么单击该元素看起来很简单。 试试这个xpath
driver.find_element_by_xpath("//span[contains(.,'My page')]/parent::a").click()
若要单击()
文本为我的页面的链接,因为该元素是一个已启用的元素,因此您必须引导WebDriverWait使元素可单击()
,并且您可以使用以下任一解决方案:
- 使用
A:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='My page']"))).click()
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li[id$='_pr']>a[href^='http'] span.left_label"))).click()
- 使用
B:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[contains(@id,'_pr')]/a[starts-with(@href,'http')]//span[text()='My page']"))).click()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
单击()
文本链接为我的页面,因为该元素是一个启用的元素,因此您必须引导WebDriverWait使元素成为可单击的()
,并且您可以使用以下任一解决方案:
- 使用
A:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='My page']"))).click()
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li[id$='_pr']>a[href^='http'] span.left_label"))).click()
- 使用
B:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[contains(@id,'_pr')]/a[starts-with(@href,'http')]//span[text()='My page']"))).click()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC