繁体   English   中英

无法单击 selenium 中的元素

[英]Unable to click element in selenium

我正在尝试抓取:

https://shop.mango.com/us/women/jackets-biker-jackets/leather-biker-jacket_53095011.html?c=CG&n=1&s=prendas_she.familia;1,6

我的 Selenium 代码点击“发现我的尺寸”,然后输入身高和体重,点击下一步按钮移动到下一页。 然后点击腹部形状和臀部形状框架出现。 它需要单击相关跨度,然后移动到下一步。 我无法使用此代码单击它:

if "straighter" in str(df_temp['hshape']):
                print("here hshapeeeeeeeeee")
                xpath="/html/body/div[9]/div[3]/div/div[2]/div[1]/div/div/div[3]/div/div/ul/li[1]/span/img"
                straighter = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, xpath))).click()

与此类似的是我点击腹部形状的代码,效果很好:

if "flatter" in str(df_temp['bshape']):
                xpath="/html/body/div[9]/div[3]/div/div[2]/div[1]/div/div/div[3]/div/div/ul/li[1]/span"
                flatter = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, xpath)))
                driver.execute_script("arguments[0].click();", flatter)

也不抛出任何异常。 刚退出

编辑:演练:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

如果您想要快速解决方案,请尝试:

xpath="//span/div[text()='Straighter']"

我建议使用 xpath ,它不依赖于确切的位置,而是通过特定的元素属性识别其目标。 在这种情况下,它将使用元素的文本。

但是,文本并不总是一个可靠的因素,尤其是在多语言网站上。 或者,您可以尝试以下方法:

xpath="//span[contains(@aria-label,'Hip Shape Selection button - Straighter')]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM