我一直在尝试通过使用内部文本来找到单击特定li元素的方法,但是,无论如何,我似乎都找不到该元素。
HTML是;
<ul class="shoes-sizen-mp" id="ul_top_hypers" style="overflow: auto;">
<li id="li_284" onclick="return select_size('284')"><a class="a_top_hypers"> 3.5 <span style="display: none">,</span><br> 35.5<br></a></li>
<li id="li_285" onclick="return select_size('285')"><a class="a_top_hypers"> 4 <span style="display: none">,</span><br> 36<br></a></li>
这是列表的一部分,您可以在其中选择尺寸(例如3.5、4、4.5、5)。我希望能够通过使用诸如3.5之类的文本来单击特定的一个。
编辑
driver.find_element_by_xpath(f"//ul[@id='ul_top_hypers' and starts-with(@id, 'li_'][contains(text(),'{user_shoe_size}')]").click()
sleep(20)
以上是我尝试定位该元素的众多操作之一,但到目前为止还没有。
任何帮助将不胜感激。非常感谢!
答案 0 :(得分:0)
要点击动态诱导WebDriverWait
()并等待element_to_be_clickable
()并跟随xpath。
def click_size(size):
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//ul[@class='shoes-sizen-mp']//li[contains(.,'{}')]".format(size)))).click()
click_size("3.5")
您需要导入以下库。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC