我在一个网站上写了一个完美的代码,但在另一个网站上却不起作用。基本上问题是找出元素。
此外,还试图通过相对XPATH和绝对XPATH找到它,但是它仍然找不到它。(在有问题的网站)
我想尽量减少共享,如果还有什么可以帮助我的话:)工作元素:
<div id="areaAvail_0" class="areaAvail red button" style="top: 141.65px; left: 212.221px;" data-areaindex="0" data-areatype="ReservedSeating" data-areaid="f8c68849-c882-e911-80dd-984be16723b6" data-hasqtip="94">
</div>
有问题的因素:
<div id="areaAvail_0" class="areaAvail red button" style="top: 213.238px; left: 91.901px;" data-areaindex="0" data-areatype="GeneralAdmission" data-areaid="20d4c178-7539-ed11-83d1-e7ab999ef3a1" data-hasqtip="1" aria-describedby="qtip-1">
</div>
守则:
driver = webdriver.Chrome(service=serv_obj)
wait = WebDriverWait(driver, 300)
driver.get(url)
driver.maximize_window()
list1 = driver.find_elements(By.CSS_SELECTOR, "div.areaAvail[data-areaindex]")
wait.until((EC.element_to_be_clickable((By.CSS_SELECTOR, "div.areaAvail[data-areaindex]"))))
print(len(list1))
当我使用Element_to_be_clickable时,它只是“卡住”在那一行。如果我使用time.sleep(),过了一段时间,它将打印0(问题网站)。
有什么想法或建议吗?提前谢谢!
发布于 2022-10-18 12:38:38
所以问题解决了。实际上是在iframe内部,为了单击iframe中的元素,我使用了以下几行:
wait.until((EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#myIframe"))))
wait.until((EC.element_to_be_clickable((By.CSS_SELECTOR, "div.areaAvail[data-areaindex]"))))
谢谢大家!
https://stackoverflow.com/questions/74109997
复制相似问题