在python中将WebDriver.current_url转换为字符串

2024-05-19 11:04:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试将网页url转换为字符串,以便将其转换为html格式

  for x in range(3):

        wDriver.get('https://www.example.com/')
        sTitle = wDriver.find_element_by_xpath('/html[1]/body[1]/div[1]/main[1]/div[4]/div[1]/div[1]/div[1]/div[1]/div['+str(i)+']/div[1]/div[1]/h2[1]/a[1]')
        sTitle.click()
        link = wDriver.current_url
        sHeader = wDriver.find_element_by_class_name('c-page-title')
        print(sHeader.text + ' ' + link)
        i=i+1
        newLink = str(link)
        time.sleep(2)
    
        
        sReturn = sReturn + '<p><a href="'+newLink+'">'+sHeader+'</a></p>'

我得到的错误代码是

"TypeError: can only concatenate str (not "WebElement") to str"

Tags: 字符串divurl网页byhtmllinkelement
1条回答
网友
1楼 · 发布于 2024-05-19 11:04:42
link = wDriver.current_url

当前url返回一个字符串,因此链接已经是一个字符串。您不需要再次显式转换为字符串

您获得此异常的原因是什么

"TypeError: can only concatenate str (not "WebElement") to str"

是因为当你看这里的时候

sReturn = sReturn + '<p><a href="'+newLink+'">'+sHeader+'</a></p>'

newLink是一个字符串,因此没有问题,但是sHeader是一个web元素。这就是问题的根源

请使用.text提取文本:

sReturn = sReturn + '<p><a href="'+newLink+'">'+sHeader.text+'</a></p>'

或者出于任何原因,您希望将其存储在变量中,然后使用:

sHeader = wDriver.find_element_by_class_name('c-page-title').text
sReturn = sReturn + '<p><a href="'+newLink+'">'+sHeader+'</a></p>'

相关问题 更多 >

    热门问题