selenium Selenie巨蟒查找元素

w8f9ii69  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(154)

我写了一段代码,在一个网站上运行得很好,但在另一个网站上却不能运行。从根本上说,问题在于寻找元素。
此外,我试图通过相对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">
                    &nbsp;
                </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">
                    &nbsp;
                </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))

当我使用元素_to_be_clickable时,它只是“卡住”在该行中。如果我使用time.睡眠(),在时间过去之后它将打印0(有问题的网站)。
有什么想法或建议吗?提前谢谢!

9njqaruj

9njqaruj1#

这样问题就解决了。它确实在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]"))))

谢谢大家!

相关问题