如何访问span元素并更改其值 [英] How to Access span element and change it's value

查看:987
本文介绍了如何访问span元素并更改其值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建python +硒脚本,以便从Salesforce Pardot页面获取CSV.

I am trying to create a python + selenium script in order to fetch CSV from a salesforce pardot page.

有人可以帮助我访问单击按钮时生成的下拉列表中的嵌套span元素.

Can Somebody please help me in accessing the nested span element inside the dropdown list which will be generated on button click.

到目前为止,我正在添加我的代码,并且在运行脚本时遇到超时错误.

I am adding my code done so far and I am getting Timeout Error While running my script.

from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
try:
    chrome_options = webdriver.ChromeOptions()
    prefs = {'download.default_directory': r'C:\Pardot'}
    chrome_options.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(executable_path="D:\XXX XXXX\XXXX\drivers\chromedriver.exe", options=chrome_options)
    driver.get('https://pi.pardot.com/engagementStudio/studio#/15627/reporting')
    user_name = driver.find_element_by_css_selector('#email_address')
    user_name.send_keys('XXXXXXXXXXXXXXXXXXX')
    password = driver.find_element_by_css_selector('#password')
    password.send_keys('XXXXXXXXXXXXXXXXX)
    submit_button = driver.find_element_by_css_selector('input.btn')
    submit_button.click()
    WebDriverWait(driver, 10).until(
    EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe#content-frame")))
    WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element_value(text_='All Time',locator=(By.CSS_SELECTOR,"span[data-qa='reporting-filter-trigger-value']")))

except (RuntimeError) as e:
    print(e)
finally:
    time.sleep(10)
    driver.close()

跨度DOM元素的屏幕截图

错误堆栈跟踪:

C:\Users\Vipul.Garg\AppData\Local\Programs\Python\Python37\python.exe "D:/Vipul Garg Backup/XXXX/testingCSVfetching.py"
Traceback (most recent call last):
  File "D:/Vipul Garg Backup/XXXX/testingCSVfetching.py", line 22, in <module>
    WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element_value(text_='All Time',locator=(By.CSS_SELECTOR,"span[data-qa='reporting-filter-trigger-value']")))
  File "C:\Users\Vipul.Garg\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

推荐答案

尝试这种方法

spans = driver.find_element_by_css_selector('.slds-button_reset.slds-grow.slds-has-blur-focus.trigger-button').get_attribute('innerHTML') print(spans) 您应该获得所有的跨度.

spans = driver.find_element_by_css_selector('.slds-button_reset.slds-grow.slds-has-blur-focus.trigger-button').get_attribute('innerHTML') print(spans) You should be getting all span.

这篇关于如何访问span元素并更改其值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆