无法将两个表达式放入我的脚本中

时间:2017-06-30 10:11:02

标签: python-3.x selenium xpath selenium-webdriver web-scraping

我编写了一个脚本来使用python和selenium从网页中抓取文档。但是,我唯一遇到的就是打印这个值。由于硒不支持文本中的索引,我无法进一步思考以实现此目的。看看我的代码你将会知道我的意思。我已经评论出要纠正的两条线。提前致谢。这是我到目前为止所写的内容:

<ItemsControl ItemsSource="{Binding Path=MyLabelList}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="Grid.Column" Value="{Binding columnNr}" />
            <Setter Property="Grid.Row" Value="{Binding rowNr}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding content}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

2 个答案:

答案 0 :(得分:1)

尝试以下代码,如有任何问题,请与我联系:

Name = driver.execute_script('return arguments[0].childNodes[1].textContent', docs) # To get Name text value
Address = driver.execute_script('return arguments[0].childNodes[3].textContent', docs) # To get Address text value

答案 1 :(得分:0)

您的注释表达式正在检索webelements。我假设只有一个名称,所以代码应该使用find_element_by_xpath(不带“s”)。如果您想要这些元素中显示的文本,请询问该属性:

    Name = docs.find_element_by_xpath('//div[@id="schoolDetail"]/text()[1]').text
    Address = docs.find_element_by_xpath('//div[@id="schoolDetail"]/text()[2]').text