selenium 查找具有随机ID的元素[Python/Selify]

t3irkdon  于 2022-11-10  发布在  Python
关注(0)|答案(2)|浏览(175)

问题是什么:
我对 selenium 还是个新手,我想在网页上找一种元素。背景是我想写一个脚本,这样它就可以帮助我在Oracle云上创建示例。在我必须选择舱室的页面上,我需要输入我的根名称。我就是找不到输入框。

我认为该元素是高亮显示的元素,对应于网页左侧的“选择一个隔间”,但id是随机的。
我尝试了什么:
举几个例子,我试着
driver.find_element(By.XPATH, '//*[@id="active_compartment_select-dc369079-e95a-2176-f8e4-6ee9c16fe105_trigger"]/ul/li/input')
driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div/aside/div[3]/div/div[2]/div[1]/div/div/div/a/ul/li/input')
我也试过了
By.CLASS_NAME, 'dropdown-trigger arrow bottom',未见异常;
By.XPATH, //div[contains(@id, 'active_compartment_select')],则没有显示任何内容。
我甚至尝试了find_elements(By.TAG_NAME, 'input'),但返回的列表中仍然没有这样的元素。
我基本上尝试了我能找到的关于Stackoverflow的所有建议,但它仍然没有显示这样的元素例外。
有什么建议吗?提前谢谢!

z4bn682m

z4bn682m1#

它在IFRAME中,我检查了我的Oracle云帐户,尝试一下,它起作用了:

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "sandbox-compute-container")))

driver.find_element(By.XPATH, ".//*[starts-with(@id,'active_compartment_select-')]//a").click()
kx1ctssn

kx1ctssn2#

你在找下拉式“隔间”,对吗?
您可以使用以下XPath找到它:driver.find_element(By.XPATH,'//input[@placeholder="Choose a compartment"]')

相关问题