- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图找到位于一个窗口中的元素的 xpath,该窗口在另一个窗口中打开,用于 selenium 的 python 脚本。
该页面本质上是一个框架,在其中托管另一个页面(想想浏览器窗口中的浏览器)。
我可以在外部浏览器窗口中找到窗口本身的 xpath,但我似乎无法使用 xpath 选择内部窗口中的任何元素。
这是选择我想要的元素的整体 xpath。
/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1]
选择内部窗口的xpath是:
/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe
在内部窗口中选择项目的 xpath(如果直接在内窗口的页面上)是:
/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1 ]
我已经尝试使用所有这些方法,但无法选择内页上的元素。
这是 Python 代码:
survivorFrame = driver.find_elements_by_xpath(".//*[@id='theSurvivorIframe']")[0]
driver.switch_to_frame(survivorFrame)
elem1 = driver.find_elements_by_xpath(".//*[@id='lea1_ileinner']/a[1]")
survivorOwner = re.search('>(.*)<', elem1)
print elem1
print survivorOwner
最佳答案
您必须将控件切换到 iframe 内部,然后尝试与网络元素交互
iframe = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to_frame(iframe)
然后退出 iframe 回到主窗口
driver.switch_to_default_content()
关于python - 如何在另一个 "frame window"内的窗口中查找元素的 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075486/
我是一名优秀的程序员,十分优秀!