【问题标题】:Getting javascript variable value while Selenium Python在 Selenium Python 时获取 javascript 变量值
【发布时间】:2021-02-01 20:36:58
【问题描述】:
rwdata = driver.find_elements_by_xpath(
    "/html/body/div[2]/div/div/div/form[2]/div[2]/table/tbody")

这是一个表格,r 的值为 text/javascript 类型

for r in rwdata:
    print(r.text)
    if r.text != "Booked":
        print("Aceptado")

当我打印 R 时,它具有以下值: 已预订 已预订 已预订 9:00 AM 已预订 已预订 已预订 凌晨 2:00 已预订

¿我如何进行这种比较,因为到目前为止它从未进入 if?

        <td scope="row" headers="2/8/2021" class="timetable-cells">

             <div class="cellcontainer" style="height:120px">
                                    

                    <div data-function="timeTableCell"
                         data-sectionid="153"
                         data-servicetypeid="862"
                         data-fromdatetime="2/8/2021 9:00:00 AM"
                         class="pointer timecell text-center "
                         style="top: 0px; height:118px; background-color: #FF0000;color:#000000;"
                         aria-label="Booked"
                         
                         role="row">
                        <label for="ReservedDateTime_2/8/2021 9:00:00 AM">
                            Booked
                        </label>
                    </div>

       

【问题讨论】:

    标签: python json selenium web-scraping


    【解决方案1】:

    您永远不会输入 if,因为您只是检查 tbody 元素的 textr 值。所以整个字符串是“Booked, Booked, Booked, 9:00 AM, Booked, Booked, Booked, 2:00 Am, Booked”。 我认为您想要做的是遍历各个单元格?像这样:

    #here you fetch all the ONE element that are selected by xpath:
    rwdata = driver.find_element_by_xpath(
        "/html/body/div[2]/div/div/div/form[2]/div[2]/table/tbody")
    
    #here you loop through all those table TD elements
    for r in rwdata.find_elements_by_xpath("//td"):
        #here you print the TD's text value
        print(r.text)
        #here you check if the text value is equal to a short string
        if r.text != "Booked":
            print("Aceptado")
    

    【讨论】:

    • 不,如果您一张一张打印的话。已预订/n 已预订/n 已预订/n 上午 9:00/n ...
    • 发生的事情是 r 是文本/javascript,我将它与字符串进行比较。我如何进行这种比较
    • 对不起,我不明白。
    • @SebastianC 我看到在您的第一条评论中出售的那些表是“已预订/n”...这里的代码试图匹配“已预订”(没有/n”)。您可以修改DMart 去除空格的代码,然后与您的字符串进行比较。如果这不起作用,请编辑您的问题以包含您尝试使用的表格的 html。
    • 已经编辑了答案,我在html中放了一个列的字段,问题不在于空格,问题是它们与我在上面的cmets中提到的类型不同。我如何才能毫无问题地提取此文本或此单元格的颜色谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多