gpt4 book ai didi

Python + Selenium -- 无法点击元素

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:51 25 4
gpt4 key购买 nike

我的页面上有一个订单搜索结果的下拉列表:

<ul class="chzn-results" style="overflow-x: hidden;">
<li id="selZB4_chzn_o_0" class="active-result result-selected" style=""> by popular </li>
<li id="selZB4_chzn_o_1" class="active-result" style=""> price (from cheap) </li>
<li id="selZB4_chzn_o_2" class="active-result" style=""> price (from expensive) </li>
<li id="selZB4_chzn_o_3" class="active-result result-last" style=""> discount </li>
</ul>

我点击了一下,打开了这个下拉菜单:

action = ActionChains(driver)
order = driver.find_element_by_xpath('/html/body/div[2]/div[1]/div/div[5]/div[2]/div[3]/div/div/div[2]/div[2]/span[2]/span[1]')
action.move_to_element(order).click().perform()

下拉菜单打开。接下来,我想选择“from cheap”来订购我页面上的对象,但 Selenium 返回 AttributeError: 'list' object has no attribute 'id'。

我尝试了不同的方式,例如:

from_cheap = driver.find_elements_by_xpath("//[@id="selZB4_chzn_o_1"]")
action.move_to_element(from_cheap).click().perform()

或通过 CSS 选择器。或按 id,但它仍然没有点击。我的错误是什么?

最佳答案

所需的元素是一个动态元素,因此要定位您必须诱导 WebDriverWait 以使该元素可点击 的元素,您可以使用以下任一解决方案:

  • XPATH 1:

    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='chzn-results']//li[@class='active-result' and contains(., 'from cheap')]"))).click()
  • XPATH 2:

    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='chzn-results']//li[@class='active-result' and normalize-space()='price (from cheap)']"))).click()

关于Python + Selenium -- 无法点击元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54534644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com