如何使用Python和Selenium获取字符串中的img src

12

我有一个谷歌搜索结果,大致如下:

div class="rc"
    h3 class="r"
        <a href="somelink">
            <img id="idFOO" src="data:somethingFOO" style="...">
        </a>

我想使用Python和Selenium将somethingFOO(或data:somethingFOO)添加到字符串中。我该怎么做?


你的意思是要添加什么?是想获取这段文本并与字符串组合,还是想在这段文本中添加一些内容? - Gaurang Shah
我想把“somethingFOO”放进一个字符串里。例如,我希望能够执行“return string”,并且结果是“somethingFOO”。 - cosminp
你目前尝试了什么,有什么问题? - Gaurang Shah
我尝试了myString=browser.find_element_by_class_name("r").text,但是我没有得到我想要的结果。我得到了一些其他的文本。 我尝试了find_element_by_id("idFOO).text,但是我什么也没得到。 - cosminp
可能是 使用Python访问Selenium Web元素 的重复问题。 - JeffC
2个回答

37

你感兴趣的不是文本,而是一个名为“src”的属性。因此,如果你像这样做,你将得不到你想要的结果。

find_element_by_id("idFOO").get_attribute("src")

如果你的HTML代码像这样:

<input id="demo">hello world </input>

那么以下代码将会输出“hello world”

driver.find_element_by_id("demo").text

以下代码将为您提供演示:

driver.find_element_by_id("demo").get_attribute("id")

在您的情况下,应该是:

driver.find_element_by_id("idFOO").get_attribute("src")


@cosminp 如果答案有效,您可以选择它,这样有助于其他人。 - Gaurang Shah
刚刚完成了。 :) 如果可以的话,我有一个快速问题,我能做些什么只查找driver.find_element_by_id("idFOO")中的子字符串吗?我想要类似于driver.find_element_by_id("idF*")这样的东西。 - cosminp
1
是的,driver.find_element_by_xpath("//*[contains(@id,'idF')]") - Gaurang Shah
非常感谢您! - cosminp

3

尝试:

src = driver.find_element_by_xpath("//div[@class='rc]/h3[@class='r']/a/img").get_attribute("src")

P.S. - 使用完整的xpath以避免在实际DOM上出现重复冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接