【发布时间】:2012-03-21 18:32:30
【问题描述】:
例如,这里是部分来源:
<div id = "eg_1_2_3_0399483" style = "visibility: visible; display: block;">
<iframe id = "default_23342522" src="http://example.com/random_string_skdfjgklsjklf" style = "height: 600px;">
...
<div id = "eg_238_2348927" style = "visibility: hidden; display: none;">
<iframe ...
你看,源中有多个iframe,我真正想要定位的是<iframe id = "default_23342522" src="http://example.com/random_string_skdfjgklsjklf" style = "height: 600px;">,但是id和src在每次加载页面时都会不断变化,所以基本上我会先定位<div id = "eg_1_2_3_0399483" style = "visibility: visible; display: block;"> 然后去找它的子节点,问题是,你是怎么做到的?好吧我知道定位第一个<div>元素的方法是这样的:
element = browser.find_elements_by_xpath("//div[@style='visibility: visible; display: block;']")
然后呢?
或者关于如何定位上面的iframe 元素的一些更好的想法?
【问题讨论】:
-
CSS 样式属性非常脆弱,我不会使用它们来识别元素。最好使用来自具有不变 ID 或特定类组合的元素的路径。然后,你可以简单地做
//path/to/div/iframe[1]。