javascript - 如何在 Python 中使用 Selenium 获取 JavaScript 元素?

标签 javascript python selenium parsing web-scraping

我想解析“disabled”,但我无法使用 Beautiful Soup 来执行此操作。如何在Python中使用Selenium来解析“disabled”?我正在解析的网站:https://sport.woot.com/offers/asics-mens-clearance-calculator?ref=w_cnt_lnd_cat_sprt_18_1 尺寸

                                    <select id="attr-size" name="Size">
                                        <option value="none">- Select -</option>
                                            <option value="6.5">6.5</option>
                                            <option value="8">8</option>
                                            <option value="8.5" disabled="">8.5</option>
                                            <option value="9.5">9.5</option>
                                            <option value="10">10</option>
                                            <option value="10.5">10.5</option>
                                            <option value="11">11</option>
                                            <option value="12" disabled="">12</option>
                                            <option value="13" disabled="">13</option>
                                            <option value="14" disabled="">14</option>
                                            <option value="12 Wide US">12 Wide US</option>
                                            <option value="13 (4E)" disabled="">13 (4E)</option>
                                    </select>
                                </div>

尝试:

from selenium import webdriver
import geckodriver_autoinstaller
driver = webdriver.Firefox()
driver.get("https://sport.woot.com/offers/asics-mens-clearance-calculator? 
ref=w_cnt_lnd_cat_sprt_18_1")
disabled_sizes = driver.find_element_by_class_name("disabled")
my_disabled_sizes = []
try:
    for disabled_size in disabled_sizes:
        try:
            my_disabled_sizes.append(disabled_sizes.text)

        except:
            pass
except:
    pass
try:
    print(my_disabled_sizes[1:])  # skip first element then start listing 
disabled sizes
except:
    pass

最佳答案

您可以使用下面的xpath来获取所有具有disabled属性的选项。

//select[@id='attr-size']/option[@disabled]

这是在 python 中获取所有禁用元素的逻辑。

disabled_elems =driver.find_elements_by_xpath("//select[@id='attr-size']/option[@disabled]")

屏幕截图:

enter image description here

关于javascript - 如何在 Python 中使用 Selenium 获取 JavaScript 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60637417/

相关文章:

excel - VBA Selenium with Chrome - 将文件上传到网页

javascript - 使用 highchart 来自 MySQL 的实时数据

javascript - 如何使用 c3js 在饼图上显示自定义标签?

python - 如何使用 Pip (OS X) 在虚拟环境中安装 Python 包

python - 如何以编程方式设置 Alembic 所需的 'target_metadata' 以便与命令 API 一起使用?

firefox - 用于 Firefox 的 Selenium IDE Ctrl-Tab

php - Selenium 导出测试用例,因为我的 Selenium IDE 1.2.0 中缺少 PHP-phpunit?

javascript - 如何重定向 POST 请求并在 Sails.js 中传递发布数据

javascript - 使用 colorValue 的 Highcharts 饼图切片颜色强度

python - 需要帮助从 pickle 中提取二进制数据