需要一些关于如何查找JavaScript生成的动态DOM ID的说明吗

需要一些关于如何查找JavaScript生成的动态DOM ID的说明吗,javascript,html,google-chrome,Javascript,Html,Google Chrome,当我试图清理一些网站时,我发现了一个无法解决的问题。我需要使用JavaScript从运行AJAX的网页中选择一些数据。 如果我点击页面上的一个按钮,我可以从Chrome开发者工具中看到有许多元素具有动态ID。 例如:如果我像这样运行JavaScript: var data=document.getElementsByClassName('title'); 我可以看到有很多DOM项,下面是其中的一个元素 a{ 文字装饰:无; } .com投注按钮{ 显示:内联块; 文本对齐:居中; 高度:25

当我试图清理一些网站时,我发现了一个无法解决的问题。我需要使用JavaScript从运行AJAX的网页中选择一些数据。 如果我点击页面上的一个按钮,我可以从Chrome开发者工具中看到有许多元素具有动态ID。 例如:如果我像这样运行JavaScript: var data=document.getElementsByClassName('title'); 我可以看到有很多DOM项,下面是其中的一个元素


a{
文字装饰:无;
}
.com投注按钮{
显示:内联块;
文本对齐:居中;
高度:25px;
线高:25px;
字体大小:12px;
字号:700;
边框宽度:0;
宽度:42px;
颜色:#fff;
字体大小:13px;
填充:0;
背景色:#2797e6;
}
a:活动,a:悬停{
大纲:0;
}
a:焦点{
轮廓:细点;
}
.com下注按钮:焦点,.com下注按钮:悬停{
背景色:#2180c4;
}
.mod minimarketview.ui下注按钮,.mod minimarketview.ui运行程序处于活动状态{
高度:31px;
线高:31px;
}
.mod minimarketview.minimarketview内容.ui下注按钮{
浮动:对;
}
菜单{
填充:0 40px;
}
身体{
颜色:#1E;
字体大小:12px;
}
块引号、正文、代码、dd、div、dl、dt、字段集、表格、h1、h2、h3、h4、h5、h6、输入、图例、li、ol、p、pre、td、textarea、th、ul{
保证金:0;
填充:0;
}
李{
列表样式:无;
}
.mod minimarketview.minimarketview内容ul li{
浮动:左;
宽度:212px;
}
.mod minimarketview.minimarketview内容.runner项{
边框底部:1px实心#e1e1;
}
.mod minimarketview.minimarketview内容.runner项:悬停.mod minimarketview.minimarketview内容ul.sortedMarketList>li.sortedMarket:hover{
背景色:#e1e1;
过渡色:背景色。1s容易进入;
}
.mod minimarketview.minimarketview内容.runner-list3 li.runner-item{
宽度:212px;
}
dl、菜单、ol、ul{
利润率:1米0;
}
.mod minimarketview.minimarketview内容{
位置:相对位置;
浮动:左;
宽度:100%;
过渡:最大高度1s线性;
}
.mod minimarketview{
过渡:最大高度1s线性;
过渡:边缘底部。1s线性;
浮动:左;
宽度:100%;
*缩放:1:;
边缘底部:5px;
背景色:#fff;
}
.mod marketgroups.列出最小市场{
浮动:左;
宽度:100%;
边际上限:0px;
}
.mod eventgroups.headtohead容器、.mod eventgroups.redirect、.mod eventgroups.update容器{
浮动:左;
宽度:100%;
}
.模块占位符{
保证金:0 1px 5px;
}
#区域右列>.grid-1>.module占位符{
宽度:636px;
浮动:左;
}
#区域右列>.grid-1{
宽度:100%;
浮动:左;
}
#区域右栏{
宽度:638px;
浮动:左;
位置:相对位置;
}
#区域左-右列{
宽度:1014px;
保证金:0自动;
}
#区域容器.scroller、.zone容器.scroller{
填充:20px 0 30px;
显示:块;
*缩放:1:;
}
.区域集装箱{
宽度:自动!重要;
}
#区域容器,.区域容器{
位置:相对位置;
宽度:100%;
最小高度:600px;
}
身体{
保证金:0;
}
身体{
字号:1em;
线高:1.4;
}
html{
字体大小:100%;
-webkit文本大小调整:100%;
-ms文本大小调整:100%;
}
按钮、html、输入、选择、文本区域{
颜色:#222;
}
html{
-webkit字体平滑:抗锯齿;
}
html,html.page-virtual-sports{
背景色:#e1e6ea!重要;
}
按钮、html、输入、选择、文本区域{
字体系列:Arial、Tahoma、Verdana、Helvetica、无衬线字体;
}
html{
颜色:#000;
背景:#fff;
}
html{
背景:#ecf0f3!重要;
}

可能的解决方案是:若只有id在变化,并且id中有模式,那个么可能的解决方案是获取标记并在它们上迭代,当找到具有特定id模式的标记时中断循环。示例如下:

var elements = document.getElementsByTagName('div');
var wanted_element;
for (element in elements)
{
     var id = elements[element].getAttribute('id');
     if (id.includes("yui_3_5_0_1_1577049074725_"))
         {console.log(id);
          wanted_element = elements[element];
          break;}
}
但您的案例可能需要一些调整(检查更多属性等等)。 如果您使用的是python和selenium,则可能如下所示:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('YourUrl')
divs = driver.find_elements_by_tag_name('div')
wanted_div = None
for div in divs:
    ID = div.get_attribute('id')
    if 'yui_3_5_0_1_1577049074725' in ID:
        wanted_div = div
        break
对于模式签入id属性,还可以使用regex