如何访问没有 ID、名称或 class 的 iframe
How do I access the iframe that does not have an id, name or class
我有以下 iframe:
<iframe _ngcontent-oyp-c7="" allow="fullscreen" allowfullscreen="" mozallowfullscreen="" scrolling="yes" webkitallowfullscreen="" src="https://launch.spribegaming.com/games/launch/aviator?user=164291&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQdW50ZXJJZCI6IjE2NDI5MSIsIm5iZiI6MTY0MzcyMjU5NCwiZXhwIjoxNjQzNzQ0MTk0LCJpYXQiOjE2NDM3MjI1OTR9.7st61IJ2K4nOHIhezeg9exDUk-mh0t21e73Dq5QQdbY&lang=EN&currency=ZAR&operator=hollywoodbets&return_url=https://new.hollywoodbets.net" frameborder="0"></iframe>
我如何获取它的元素,因为它没有 ID、名称或 class。还有另一种访问方式吗?它是一个 iframe,所以我不能通过索引调用它,例如 switchTo.frame(int frame number)
driver.switchTo.frame
也接受 web-element 对象参数。
frame_element = driver.find_element(...)
driver.switchTo.frame(frame_element)
在这种情况下,为了定位 iframe,我建议使用 XPATH。
对于单个 iframe 仅
//iframe
对于多个 iframe,您必须找到一些独特的属性过滤器
//iframe[@_ngcontent-oyp-c7]
或
//iframe[contains(@src, 'spribegaming.com/games')]
甚至将条件与 or/and xpath 运算符组合:
//iframe[(@scrolling='yes') or (@allow='fullscreen')]
我有以下 iframe:
<iframe _ngcontent-oyp-c7="" allow="fullscreen" allowfullscreen="" mozallowfullscreen="" scrolling="yes" webkitallowfullscreen="" src="https://launch.spribegaming.com/games/launch/aviator?user=164291&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQdW50ZXJJZCI6IjE2NDI5MSIsIm5iZiI6MTY0MzcyMjU5NCwiZXhwIjoxNjQzNzQ0MTk0LCJpYXQiOjE2NDM3MjI1OTR9.7st61IJ2K4nOHIhezeg9exDUk-mh0t21e73Dq5QQdbY&lang=EN&currency=ZAR&operator=hollywoodbets&return_url=https://new.hollywoodbets.net" frameborder="0"></iframe>
我如何获取它的元素,因为它没有 ID、名称或 class。还有另一种访问方式吗?它是一个 iframe,所以我不能通过索引调用它,例如 switchTo.frame(int frame number)
driver.switchTo.frame
也接受 web-element 对象参数。
frame_element = driver.find_element(...)
driver.switchTo.frame(frame_element)
在这种情况下,为了定位 iframe,我建议使用 XPATH。
对于单个 iframe 仅
//iframe
对于多个 iframe,您必须找到一些独特的属性过滤器
//iframe[@_ngcontent-oyp-c7]
或
//iframe[contains(@src, 'spribegaming.com/games')]
甚至将条件与 or/and xpath 运算符组合:
//iframe[(@scrolling='yes') or (@allow='fullscreen')]