无法单击硒中的元素

时间:2019-11-18 13:06:47

标签: python selenium

我正在尝试刮擦:

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

我的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)

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

编辑:演练:

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您想快速解决问题,请尝试:

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

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

但是,文本并不总是可靠的因素,尤其是在多语言网站上。另外,您可以尝试以下操作:

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