0

我正在尝试创建一个 python + selenium 脚本,以便从 salesforce pardot 页面获取 CSV。

有人可以帮助我访问下拉列表中的嵌套跨度元素,该元素将在单击按钮时生成。

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

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()

span 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: 
4

1 回答 1

0

试试这个方法

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

于 2020-03-03T07:33:18.307 回答