我正在尝试刮擦:
我的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)
也不抛出任何异常。刚刚退出
编辑:演练:
答案 0 :(得分:0)
如果您想快速解决问题,请尝试:
xpath="//span/div[text()='Straighter']"
我建议使用不依赖于确切位置的xpath,而是通过特定元素属性来标识其目标。在这种情况下,它将使用元素的文本。
但是,文本并不总是可靠的因素,尤其是在多语言网站上。另外,您可以尝试以下操作:
xpath="//span[contains(@aria-label,'Hip Shape Selection button - Straighter')]"