1:データベース等で自動生成されるWEBで、class属性下で、hrefの取得をしたい。
find_elements_by_class_name("abc")[1].get_attribute("href")
では、get_attributeが取得できない。
find_elements_by_xpath("//div/===/a").get_attribute("href")
で取得できるが、===の部分が都度変化して、div構成などのデータ巣数が増減するため、取得しにくい。
class属性下においてhrefを取得する方法はありますか?
ない場合、xpath直接指定以外の方法はあるでしょうか?
2:上記のようにclass属性での繰り返し(同じclass名が反復される)で、データが生成される場合、for文(i)で周回取得したいが、forの数値(0~)を添え字として周回させたい場合、
find_elements_by_class_name("abc")[ + str(i) + ].get_attribute("text")
とすると、]の位置でsyntax error になってしまうので、解消したい。
よろしくお願いします。
> では、get_attributeが取得できない。
具体的に、どういう現象(実行結果)でしょうか?
driver.find_elements_by_class_name("abc")[0].get_attribute("href")
で
IndexError: list index out of range
エラーがでます。
取得できるページソース(<div id="app"></div>ここにページが生成されます)
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700|Roboto:400,700&display=swap&subset=japanese" rel="stylesheet">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta name="referrer" content="no-referrer-when-downgrade">
<meta name="twitter:card" content="summary_large_image">
<!-- posthtml-modules -->
<meta http-equiv="Content-Security-Policy" content="script-src-elem 'self' 'sha256-kZS1F1CAAcsK4W77tPu6k1p14hSRok1WCwYy29wLoy0=' 'sha256-pjDsC8gzF0TA4t7BkL/xu2j2e8Y27oL2cC5tsfYKlkQ=' 'sha256-E1xT4qt1xv+TGmSHsamjYL47BgB0UIjo5M9ECWstDzE=' 'sha256-hNCw9/hWd37RuOKANeZK28lDmdfH2kaDXGI64ZHl72k=' 'sha256-O7OdOpBvtMA3Y7phxNojIa5nIGmUtlW6rNcg1KXs3HE=' 'sha256-YVTnuSin4zQHa6JR0kcF9HRNd6pWeRJ8SezekDy+iBE=' 'sha256-T9h4ixy0FtNsCwAyTfBtIY6uV5ZhMeNQIlL42GAKEME=' 'sha256-7huIvJqiU8uJtld7FifrHukQiVMAzXpQ/D9QjVWuQRE=' 'sha256-O2MxKooJgEbLykXswZrjewXwcPUvViOdvGo3UB2Tjtc=' https://optimize.google.com https://www.googleoptimize.com/optimize.js https://maps.googleapis.com https://pi.pardot.com/pd.js https://pi.pardot.com/analytics https://googleads.g.doubleclick.net/ https://s.yimg.jp/images/listing/tool/cv/ytag.js https://connect.facebook.net https://polyfill.io/v3/polyfill.min.js http://sashare.com/b/sokus.js https://*.clarity.ms https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.google-analytics.com/analytics.js https://connect.facebook.net/en_US/fbevents.js https://www.googleadservices.com/pagead/conversion_async.js; style-src-elem 'self' https://optimize.google.com https://fonts.googleapis.com 'unsafe-inline';">
<meta property="og:url" content="https://www.jobantenna.jp/">
<meta property="og:title" content="沖縄の求人・転職ならジョブアンテナ">
<meta property="og:description" content="沖縄の求人・転職ならジョブアンテナ | 沖縄県内企業の求人情報と会社情報を豊富に提供しています。沖縄専門の求人・転職サービスです。">
<meta property="og:image" content="https://www.jobantenna.jp/og-image.jpg">
<meta name="facebook-domain-verification" content="xjs20bs0xokzwgsy8gywkv4viopsom">
<script type="module" crossorigin="" src="/assets/index.1449fc80.js"></script>
<link rel="modulepreload" href="/assets/vendor.6a70e59a.js">
<link rel="stylesheet" href="/assets/index.9f8d4adb.css">
<script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
</head>
<body>
<div id="app"></div>
<script src="https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserver"></script>
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
<script nomodule id="vite-legacy-polyfill" src="/assets/polyfills-legacy.7a9fcf25.js"></script>
<script nomodule id="vite-legacy-entry" data-src="/assets/index-legacy.d588ba11.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
</body>
</html>
要素はこちらの画像にて
https://ibb.co/hfRhMQK
取得したいのは、htrfですが、driver.find_elements_by_class_name("searchOffersPage-jobCard-wrapper")
などの、class取得で
attributeerror 'webdriver' object has no attribute
になってしまいます

回答3件
あなたの回答
tips
プレビュー