我有一个程序可以从我的系统中获取版本(selenium、python 和 chrome),并将其与在线最新版本进行比较。
这是从我的系统获取 pythons 版本的代码
pythonVersion = platform.python_version()
finalVersion = "Python " + pythonVersion
Run Code Online (Sandbox Code Playgroud)
现在我的主要问题是尝试使用代码获取 Pycharms 版本。如果有人知道如何做到这一点,那将会很有帮助
我正在寻找如何查找具有类并包含文本的元素的答案。
我有两个答案。
//div[@class='credit_summary_item' and contains(text(),'Professor']:如HTML XPath 按类和文本搜索//div[contains(@class, 'credit_summary_item') and contains(., 'Professor')]:就像在XPath 中一样匹配 @class 值和元素值?对我来说,只有第二个答案有效。任何人都可以解释“包含文本”部分的区别吗?因为两个答案都没有提及。
browser.execute_script("window.open('about:blank', 'tab2');")
browser.switch_to.window("tab2")
browser.get('http://bing.com')
Run Code Online (Sandbox Code Playgroud)
我在网上搜索在 python 中使用 selenium 打开新选项卡的方法,并且ctrl + 的方法t不适用于 chrome,所以我偶然发现了上面的一段代码,但是我无法理解 'excute_script' 的作用。
我正在遵循页面对象模型来自动化一个应用程序中的流程。在其中一个模块中,我必须声明页面标题和更多消息。到目前为止,我将我的断言代码放在 PageFactory 本身中,如下所示:
public class EditPost {
WebDriver driver;
public EditPost(WebDriver editPostDriver)
{
this.driver=editPostDriver;
}
@FindBy(how=How.XPATH,using="//*[@id='message']/p")
WebElement post_published;
public void assert_message()
{
String actual_message_title=post_published.getText();
Assert.assertEquals(actual_message_title, "Post published. View post");
System.out.println("Message: Post published, Successfully Verified");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在从实现 TestNG 的主文件中调用 assert 方法,如下所示:
@Test (priority=5)
public void assert_message()
{
//Created Page Object using Page Factory
EditPost edit_post = PageFactory.initElements(driver, EditPost.class);
edit_post.assert_message();
}
Run Code Online (Sandbox Code Playgroud)
目前,我正在通过 3 个包运行执行。浏览器工厂的“Helper”包,PageFactories 的“Pages”包和测试用例的“Testcase”包。
我的目标是向前迈进,我想重用为所有不同实用程序编写的代码。
我的问题是:
根据 PageFactory & Page Object Model 的概念,我的方法是否正确?或者我是否需要将断言移动到“Helper”包?或者我应该为断言创建一个单独的库/包?(在接下来的日子里,我可能需要在一个页面上执行多个断言)
在下一个冲刺中,我可能需要做一些其他的活动,比如对所有/失败的测试用例进行屏幕截图。那么我如何保持我的设计结构和组织,以便我可以以最佳方式重用代码/库/利用它们?
clear()在这种情况下不起作用。我追加后追加。
searchForMovie.clear()无法运作...我也曾尝试传送
CTRL + 'a',然后传送DELETE。同样,我得到的只是附件...
for movie in allMissing:
time.sleep (10)
searchForMovie = WebDriverWait (driver, 10).until \
(EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))
searchForMovie.send_keys (movie)
# click
enter = WebDriverWait (driver, 10).until \
(EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-submit")))
driver.execute_script ("arguments[0].click()", enter)
# clear the search text box
searchForMovie = WebDriverWait (driver, 10).until \
(EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))
searchForMovie.clear()
Run Code Online (Sandbox Code Playgroud) selenium css-selectors python-3.x selenium-webdriver webdriverwait
我正在使用webdriverIO Mocha框架工作,我尝试了许多解决方案,但仍收到以下错误。所以帮我解决这个问题
[23:57:52]??COMMAND???? POST???? "/wd/hub/session" [23:57:52]??DATA????????????????{"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"browserName":"firefox","platform":"macOS
10.12","version":"latest","build":"MAC_CHROME","pageLoadStrategy":"normal","acceptSslCerts":true,"_":"2 more keys: [\"loggingPrefs\",\"requestOrigins\"]"}} ERROR: connect ECONNREFUSED 127.0.0.1:4444
Run Code Online (Sandbox Code Playgroud) selenium selenium-chromedriver selenium-webdriver webdriver-io
我正在尝试使用 IE 在 java selenium 中进行测试,但我的问题是我必须继续在保护模式下配置设置,这是已弃用功能的替代方法
WebDriver driver = new InternetExplorerDriver(cap);
Run Code Online (Sandbox Code Playgroud)
因为我希望在没有人工交互的情况下实现此自动化。我在 Eclipse 中使用这段代码,它在我的代码中根本没有任何效果,上面是用黄线荧光笔勾勒出来的,这表明它已被弃用。那么是否有一个新函数可以实现此目的,这是我一直用于完整性检查的代码
DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);
cap.setCapability("ignoreZoomSetting", true);
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
Run Code Online (Sandbox Code Playgroud) java selenium selenium-webdriver selenium-iedriver mutablecapabilities
我正在努力将以下 Xpath 转换为 CSS:“//form[@id=\'giftcard-form\']/div[3]/div/button”。我知道我可以将 Xpath 用于我的 selenium JS,但由于某些奇怪的原因,它在我的情况下不起作用。我成功地转换了一个更简单的并在脚本中使用它,但我无法正确完成这个。任何人都可以帮忙吗?
我正在尝试通过webWhatsapp从聊天中打印我的消息之一。
我可以通过“控制台”选项卡中的Javascript完成此操作
recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content
Run Code Online (Sandbox Code Playgroud)
问题是我试图在python上做同样的事情,但对我不起作用。
这是我尝试过的:
from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason
Run Code Online (Sandbox Code Playgroud)
我遇到的错误是:消息:无效的选择器:不允许使用复合类名
我对javascript有点陌生,所以很抱歉造成误会,并感谢您的帮助!:)
我可以使用 Selenium、ChromeDriver 和 Python 启动 Brave 浏览器
代码试验:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
options = Options()
options.binary_location = r'C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe'
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
s = Service('C:\\BrowserDrivers\\chromedriver.exe')
driver = webdriver.Chrome(service=s, options=options)
driver.get("https://www.google.com/")
Run Code Online (Sandbox Code Playgroud)
但我无法摆脱几乎与Google Chrome通知栏类似的产品分析通知栏。
谁能帮我吗?
python selenium google-chrome selenium-chromedriver brave-browser
selenium ×8
python ×3
webdriver ×3
xpath ×3
java ×2
javascript ×2
python-3.x ×2
pageobjects ×1
pycharm ×1
version ×1
webdriver-io ×1
xpath-1.0 ×1