91³Ô¹ÏÍø

Watch CBS News

CBS News poll finds Democrat Casey narrowly leading in Senate race in Pennsylvania

In a key U.S. Senate race in Pennsylvania, Democratic incumbent Bob Casey is still ahead. His lead over Republican Dave McCormick currently stands at six points, which is within the margin of error.

More of the state's voters describe Casey's positions as generally "reasonable" than "extreme" — and on this measure, he has an advantage over McCormick who draws more mixed views.

Casey has led in the race both times CBS News has previously polled it in April and September.

The competitiveness of the race comes as no surprise because many previously undecided voters looked like they were closer to the GOP. While Republicans are backing McCormick in large numbers, there's room for improvement there. But at 84%, his support from Republicans still is not matching Casey's 92% among Democrats.

While Casey's lead is not safe, he has run noticeably ahead of Kamala Harris, who is deadlocked with Donald Trump in the state's presidential race. Compared to Harris' margins, Casey is doing especially well with White, non-college men — he's losing them, but by half the margin Harris is.

And Trump's support of McCormick may not be helping much. Most likely voters say it makes no difference to whether they'll back McCormick. And a third of independents — whom McCormick needs to make up ground with — say it makes them less likely to back him. Overall, 7% of Pennsylvania likely voters say they are not sure about their Senate vote.

pa-senate-horse-race.png
pa-senate-candidates-reasonable-or-extreme.png

This CBS News/YouGov survey was conducted with a statewide representative sample of 1,273 registered voters in Pennsylvania interviewed between October 22-28, 2024. The sample was weighted according to gender, age, race, education and geographic region, based on U.S. Census data and voter files, as well as to past vote. The margin of error for registered voters is ±3.6 points.

by on Scribd

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });