Синтаксическая ошибка в xpath в коде селена в python - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь выбрать дату с помощью Selenium в Python. Код HTML выглядит следующим образом: enter image description here

Для выбора даты я использую следующий код:

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium import WebElement

driver = webdriver.Chrome(executable_path=r"C:\Users\cssaxena\Cardboard\chromedriver.exe")
url = 'https://cardboard.aka.amnz.com/#/businessGroups?app=$0c58c79c8a3280f4e953da2206007a9592499252-0'
driver.get(url)

WebElement dateBox = driver.findElement(By.xpath("//div[@name='daterange']"));

dateBox.sendKeys("20 Mar 2020, 12 AM - 03 Apr 2020, 11 PM");

и получаю следующую ошибку:


  File "C:/Users/cssaxena/Cardboard.py", line 15
    WebElement dateBox = driver.find_element_by_xpath("//div[@name='daterange']");
                     ^
SyntaxError: invalid syntax

Ответы [ 2 ]

2 голосов
/ 04 апреля 2020

Вы используете java селен.

Заменить

WebElement dateBox = driver.findElement(By.xpath("//div[@name='daterange']"));

на

dateBox = driver.find_element_by_xpath("//div[@name='daterange']")

Также заметил, что вы используете следующее

dateBox.sendKeys("20 Mar 2020, 12 AM - 03 Apr 2020, 11 PM");

Что также является java Селен, заменить на строку ниже

dateBox.send_keys("20 Mar 2020, 12 AM - 03 Apr 2020, 11 PM");

Полный сценарий

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium import WebElement

driver = webdriver.Chrome(executable_path=r"C:\Users\cssaxena\Cardboard\chromedriver.exe")
url = 'https://cardboard.aka.amnz.com/#/businessGroups? 
app=$0c58c79c8a3280f4e953da2206007a9592499252-0'
driver.get(url)

dateBox = driver.find_element_by_xpath("//div[@name='daterange']")
dateBox.send_keys("20 Mar 2020, 12 AM - 03 Apr 2020, 11 PM");
2 голосов
/ 04 апреля 2020

Это похоже на строку кода Java, которую вы пытались скопировать в сценарий Python. Python - это язык с динамической типизацией, и вы не объявляете тип переменной. Просто потеряйте WebElement и все будет в порядке:

dateBox = driver.find_element_by_xpath("//div[@name='daterange']");
...