You will need to access the "TEXT_ELEMENT" or elements as you have three using arcpy. Basis included here for a single element and a single featureclass.
import arcpy
fc = r"D:\Data.shp"
fieldList = [f.name for f in arcpy.ListFields(fc, "*")]
for field in fieldList:
queryStr = "\"" + field + "\" > 0"
mxd = arcpy.mapping.MapDocument(r"D:\MyMXD.mxd")
elm = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT")[0]
elm.text = "Title or something: " + field
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name == "Data":
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery = queryStr
arcpy.RefreshActiveView()
arcpy.mapping.ExportToPDF(mxd, r"D:\Data" + "\\" + field + ".pdf")
del mxd
This pulls the field names and applies the "DEFINITIONQUERY" to the data, but might be adaptable to pulling attributes.Regards,Craigp.s. If applying "DEFINITIONQUERY" to multiple FCs with same attribute values consider:
for value in uniqueValues:
queryStr = "\"" + field + "\" = '" + str(value) + "'"
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name == "FC1" or lyr.name == "FC2" or lyr.name == "FC3":
lyr.definitionQuery = queryStr